无论什么原因,我在使用 robocopy 时遇到了问题。
我每天都会使用几个脚本,它们都利用了 copy、xcopy 和 robocopy,除了这个之外,它们目前都正常工作。我使用的标准开关与我在其他脚本中使用的相同。
robocopy "K:\Some Folder" "H:\Files\1" /e /w:0 /r:2 /MIR
任何直接位于的文件K:\Some Folder
都会被复制。但任何位于的文件,说K:\Some Folder\Some Subfolder
做不是被复制。我查了一下,使用 /s 或 /e 也应该可以复制子目录中的所有文件。为什么不行?如果我暂停脚本,它会在某些地方显示“*Extra Files”——这可能与此有关。
之前我一直用这些开关,简化之后还是不行:
/e /w:0 /r:2 /XO /NFL /NDL /NJH /NJS /nc /ns /np
答案1
/S
中robocopy
也有一个选项。(见SS64。) 也/E
类似于/S
,但另外强制复制空文件夹。
旗帜 | 行为 |
---|---|
/S |
复制年代子文件夹 |
/E |
复制子文件夹,包括埃空子文件夹 |
据说,/MIR
暗示 /E
…
旗帜 | 行为 |
---|---|
/MIR |
和平号空间站ror 目录树——相当于/PURGE 加上所有子文件夹(/E ) |
......但我并未发现这在经验上是正确的。您应该明确包含/E
或/S
选项。
答案2
我发现/b
(备份模式)开关对我有用。尽管我似乎拥有适当的复制权限,但我robocopy
似乎不同意。/b
解决了该问题。
答案3
问题:任何直接位于的文件K:\Some Folder
都会被复制。但位于的文件K:\Some Folder\Some Subfolder
不会被复制。
解决办法是不是完全使用 robocopy,但使用复制。
代替:
robocopy "K:\Some Folder" "H:\Files\1" /e /w:0 /r:2 /MIR
应该使用它来代替:
xcopy "K:\Some Folder" "H:\Files\1" /c /s /e /y
我不知道为什么机器人复制没有用,但是复制使用这些开关可以快速、高效地完成需要做的事情。