如何批量设置 robocopy 命令的超时时间?

How to set up a time out for a robocopy command in batch?

我正在努力为 robocopy 批处理设置超时。一段时间后它应该退出 robocopy 命令,即使它没有结束。

for /f %%i IN (servers.txt) DO (
    rem insert the counter of time out
    robocopy C:\test \%%i\C$\test /S
)

有时 robocopy 在一台服务器上冻结。

是这样的吗?您将需要另一个 cmd 文件。这个将调用我们将调用的另一个文件 robo_start.cmd

start rbo_start.cmd
timeout 300
taskkill /im robo_start.cmd /F

然后 robo_start.cmd 将是您的原始文件。

for /f %%i IN (servers.txt) DO 

  ( 
    robocopy C:\test \%%i\C$\test /S
  )

Windows cmd 没有在某些东西耗时过长时退出的功能,所以你必须稍微改进一下。

可能更可靠的方法是仅在 robocopy 上设置重试次数。默认重试次数为 100 万次,您可以将其设置为更真实的值。

for /f %%i IN (servers.txt) DO 
( 
robocopy /R:1 C:\test \%%i\C$\test /S
)