为什么Robocopy会重试1000000次?

17

我有几个用于文件同步的旧批处理脚本。它们使用robocopy

根据文档,默认情况下,有一个重试机制: 一百万次重试,每次重试30秒。 所以,如果我理解正确的话,如果出现问题(例如目标文件夹中没有足够的磁盘空间),脚本将在约347天内运行结束。

我很欣赏重试机制的存在,但我不明白为什么默认行为是这样的。

默认参数值应该匹配常见和基本的用例,对于文件复制,我不明白为什么要无休止地重试;我的意思是,如果经过5次尝试后它仍然无法工作,那么就意味着需要修复某些东西(网络故障,磁盘故障...)。停止并引发错误是值得的。

这种默认行为可能有什么原因?

1个回答

17

我认为你正在寻找的“什么原因导致这种默认行为”的答案是设计不佳。

然而,我建议这种默认行为的目的是用户期望Robocopy在完成时是100%完成的。跳过意味着复制是不完整的。文件权限和锁定状态由管理员负责确保成功,否则可以使用可用选项进行更改。此命令不适用于一般用户,是面向管理员的。

为了减轻这个问题,请使用/r:/w:选项将它们更改为符合您使用情况的合理值。

例如:

robocopy /r:3 /w:10 c:\src c:\dest

将使用3次10秒的重试,在可能需要重试的情况下将c:\ src复制到c:\ dest。

你自己的文档链接显示了这些选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接