![如何在第一次出现错误时中止 robocopy](https://linux22.com/image/495462/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%AC%AC%E4%B8%80%E6%AC%A1%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF%E6%97%B6%E4%B8%AD%E6%AD%A2%20robocopy.png)
当使用 robocopy Windows 实用程序时,我应该设置哪些标志以便 robocopy 在看到的第一个错误时中止,类似于 xcopy /dry 命令?
我需要镜像两个目录,有时某些文件会被锁定。我不希望 robocopy 继续尝试复制文件,或覆盖未锁定的文件 - 相反,第一个错误应该停止整个复制过程。
答案1
你必须使用批处理文件和 robocopy退出代码
答案2
我认为您不会找到一种仅使用 Robocopy 就能轻松完成此操作的简单方法 - 它没有在失败时退出的开关。
Xcopy 的功能要差很多,但默认情况下,正如您所指出的那样,它会以您想要的方式失败。您可以做的是运行 XCopy,如果它以错误级别 0(成功)终止,那么您可以运行 Robocopy 来执行清除功能。这不会干净地处理某些极端情况,但在大多数情况下它会按照您想要的方式运行。
答案3
Robocopy "C:\Source\" "C:\Destination\" *.* /V /S /E /COPY:DAT /R:1 /W:0 > log.txt
输出:
Source : C:\Source\
Dest : C:\Destination\
Files : \*.*
Options : \*.* /V /S /E /COPY:DAT /R:1 /W:0
...
该/R:1
选项将重试次数设置为 1,并将/W:0
等待时间设置为 0。我使用的其他选项包括:
/S
复制子文件夹/E
复制子文件夹,即使是空文件夹/V
生成详细输出,显示跳过的文件、错误等。/COPY:DAT
复制数据、属性和时间戳(这是默认设置)> log.txt
通过管道输出到文本文件以供稍后检查。