Robocopyは、ファイルが「変更」されているかどうかをどのように判断しますか?


17

ここでは、Robocopyのアルゴリズムがファイルが変更されたかどうかをどのように判断するかについての詳細情報を探しています。たとえば/ mirパラメータを使用する場合、Robocopyはどのファイルが変更され、どのファイルが変更されていないかを判断する必要があります。変更されたタイムスタンプまたはファイルサイズを使用し、すべての組み合わせをハッシュしますか?

興味深いことに、ドキュメントにはそれについて何も書かれていません。

回答:


25

これを研究し、ドキュメントを読み、自分でテストして(すべて同じ結果になります)、1日を過ごした後、答えがあります。

簡単な答えは次のとおりです。Robocopyのデフォルト値は(パラメーターを介して異なる値を指定しない限り)タイムスタンプまたはファイルサイズ が異なるファイルをコピーします。Robocopyは常にソースから宛先にコピーすることを忘れないでください。( -そうでないのは、なぜ私は言葉「異なっ」に重点を置くことをあなたが先で新しく、より大きなファイルを持っているのであれば、Robocopyはソースから古いと小さいファイルで上書きされます、新しいまたはより大きな異なるだけで、)。

より深いレベルでは、ファイルの属性が異なる場合でも/ itオプションでチェックし、異なるものをコピーすることができます-ファイルサイズとタイムスタンプが同じ場合でも(OK、100%の場合、わかりませんファイルをコピーするか、欠落している属性のみをコピーしますが、ファイルは同一であるため、結果は同じになります)。

他のスレッドで引用されている長いドキュメントを見つけました-それはバージョンXP010についてです(Windows XPだったと思います)。ただし、robocopyに関する新しいドキュメントはありません。ドキュメントは次の場所にあります。

http://theether.net/download/Microsoft/Utilities/robocopy.pdf(「Robocopy File Classesの使用」セクションを読んでください。すべてがそこにかなり正確にレイアウトされています)

ドキュメントはRobocopyの古いバージョンに関するものです(Win7では通常、バージョンXP027を持っています)-しかし、このサイトでバージョンの変更を確認できます-非常にきちんとした概要があります:

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

肝心な点は、XPとWin7でさえ大きな違いはないということです-マイナーなものだけで、変更はパラメーターを追加することでした-パラメーターを変更することではありません(パラメーター/ mirを除く)。そして、比較のメカニズムは変更されていないと言っても安全だと思います。これは、パラメータを追加するという非常に小さな変更と比べると大きなことだからです。

これがおそらく新しいドキュメントがない理由です。

あなたが同じ情報を探していて、これを読んでいるなら、それが役に立つことを願っています。私は正確になろうと努め、慎重に研究を行いました。


2
作成、変更、または両方のタイムスタンプを使用しますか?
user643011

@ user54512私はまったく理解していません..タイムスタンプまたはハッシュを使用しますか?
Shayan

1
@shayan:そこに書き込まれ、タイムスタンプまたはファイルサイズが異なる場合、ソースから宛先にコピーされます。ハッシュはありません。残りは、リンクに置いたドキュメントにあります。
user54512
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.