Robocopy如何确定文件是否“已更改”?


17

我在这里寻找有关Robocopy算法如何确定文件是否已更改的详细信息。例如,如果使用/ mir参数,则Robocopy必须确定哪些文件已更改,哪些未更改。是否使用修改后的时间戳或文件大小,将所有哈希值组合在一起?

有趣的是,它在文档中什么也没说。

Answers:


25

好了,花了一天时间研究这个问题,阅读了文档并为自己进行了测试(所有结果均相同)之后,我有了答案。

一个简单的答案是:Robocopy的默认值是(除非您通过参数指定其他值),它将复制任何时间戳文件大小 不同文件。记住Robocopy总是从源复制到目标。因此,如果目标中有较新的较大文件,则Robocopy会使用源中较旧的较小文件覆盖它(这就是为什么我强调“差异”一词的原因-它不是较新的较大的,只是有所不同)。

在更深层次上,即使文件的属性不同,也可以使用/ it选项进行检查,并复制也不同的属性-即使文件大小和时间戳相同(好的,对于100%,我也不知道将复制文件或仅复制缺少的属性,但是由于文件相同,因此结果将相同)。

我发现在另一个线程中引用了冗长的文档-它是关于XP010版本的(我猜是Windows XP)。但是,根本没有新的robocopy文档。您可以在这里找到文档:

http://theether.net/download/Microsoft/Utilities/robocopy.pdf (阅读“使用Robocopy文件类”部分,那里的所有内容都非常精确)

该文档是有关Robocopy的较旧版本(在Win7下,您通常具有XP027版本)-但您可以在此站点上检查版本的更改-该概述非常简洁:

http://yarcgui.wilkes.es/De/RoboCopy/index.htm

最重要的是,即使XP和Win7之间也没有太大的区别-只有很小的区别,并且所做的更改是添加参数-请勿更改(参数/ mir除外)。而且我可以肯定地说比较机制不会改变-因为与添加更多参数的很小变化相比,这将是一件大事。

这可能是没有新文档的原因。

如果您正在寻找相同的信息并正在阅读,希望对您有所帮助。我努力做到精确,并认真研究了我的研究。


2
它是否使用创建的,修改的或同时使用的时间戳?
user643011

@ user54512我一点都不懂..那么它使用时间戳还是哈希值?
莎妍

1
@shayan:它写在那里,如果时间戳或文件大小不同,它将从源复制到目标。没有哈希。其余部分在我放在链接中的文档中。
user54512 '19
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.