如何在第一次出现错误时中止 robocopy

如何在第一次出现错误时中止 robocopy

当使用 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通过管道输出到文本文件以供稍后检查。

相关内容