Wie stellt Robocopy fest, ob eine Datei „geändert“ wurde?


17

Ich suche hier nach detaillierten Informationen darüber, wie der Algorithmus von Robocopy feststellt, ob sich eine Datei geändert hat oder nicht. Wenn ich zum Beispiel den Parameter / mir verwende, muss Robocopy ermitteln, welche Dateien geändert werden und welche nicht. Verwendet es den geänderten Zeitstempel oder die Dateigrößen, Hashes eine Kombination von allen?

Interessanterweise steht in der Dokumentation nichts darüber.

Antworten:


25

Ok, nachdem ich den Tag damit verbracht habe, dies zu recherchieren, die Dokumentation zu lesen und für mich selbst zu testen (alle mit dem gleichen Ergebnis), habe ich die Antwort.

Eine kurze Antwort lautet: Der Standardwert von Robocopy ist (sofern Sie nichts anderes über Parameter angeben), dass jede Datei kopiert wird, bei der der Zeitstempel ODER die Dateigröße unterschiedlich sind . Denken Sie daran, dass Robocopy IMMER von der Quelle zum Ziel kopiert. Wenn Sie also eine neuere UND größere Datei im Ziel haben, überschreibt Robocopy diese mit der älteren und kleineren Datei aus dem Quellcode (deshalb lege ich Wert auf das Wort " anders " - es ist nicht neuer oder größer , nur anders).

Auf einer tieferen Ebene können Sie mit der Option / it prüfen, ob sich die Attribute einer Datei unterscheiden, und auch die Attribute kopieren, die sich unterscheiden - auch wenn Dateigröße und Zeitstempel identisch sind (OK, für 100% weiß ich nicht, ob dies der Fall ist kopiert die Datei oder nur die fehlenden Attribute. Da die Dateien jedoch identisch sind, ist das Ergebnis dasselbe.

Ich fand die ausführliche Dokumentation, die im anderen Thread zitiert wurde - es handelt sich um die Version XP010 (ich denke, es war Windows XP). Es gibt jedoch einfach keine neuere Dokumentation für die Robokopie. Die Dokumentation finden Sie hier:

http://theether.net/download/Microsoft/Utilities/robocopy.pdf (Lesen Sie den Abschnitt "Verwenden von Robocopy-Dateiklassen", dort ist alles ziemlich genau dargestellt.)

Die Dokumentation handelt von einer älteren Version von Robocopy (unter Win7 haben Sie normalerweise die Version XP027). Sie können jedoch auf dieser Website nach Änderungen der Version suchen. Die Übersicht ist sehr übersichtlich:

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

Das Fazit ist, dass es zwischen XP und Win7 keine großen Unterschiede gibt - nur geringfügige und die Änderungen betrafen das Hinzufügen von Parametern - nicht das Ändern (mit Ausnahme des Parameters / mir). Und ich denke, es ist sicher zu sagen, dass sich der Vergleichsmechanismus nicht geändert hat - da dies im Vergleich zu der sehr geringen Änderung beim Hinzufügen einiger weiterer Parameter eine große Sache wäre.

Dies ist wahrscheinlich der Grund dafür, dass es keine neue Dokumentation gibt.

Ich hoffe, das hilft, wenn Sie nach denselben Informationen suchen und diese lesen. Ich habe versucht, präzise zu sein und meine Recherchen mit Sorgfalt durchgeführt.


2
Verwendet es die erstellten, geänderten oder beide Zeitstempel?
user643011

@ user54512 Ich verstehe das überhaupt nicht. Verwendet es Zeitstempel oder Hashes?
Shayan

1
@shayan: Es ist dort geschrieben, wenn Timestamp OR Filesize unterschiedlich ist , wird es von Quelle zu Ziel kopiert. Keine Hashes. Der Rest steht in der Dokumentation, die ich in den Link eingefügt habe.
user54512
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.