Comment Robocopy détermine-t-il si un fichier est «modifié»?


17

Je cherche ici des informations détaillées sur la façon dont l'algorithme de Robocopy détermine si un fichier a changé ou non. Si j'utilise par exemple le paramètre / mir, Robocopy doit déterminer quels fichiers sont modifiés et lesquels ne le sont pas. Utilise-t-il l'horodatage ou la taille des fichiers modifiés, hache-t-il une combinaison de tous?

Fait intéressant, il n'en dit rien dans la documentation.

Réponses:


25

Ok après avoir passé la journée à faire des recherches, à lire la documentation et à tester par moi-même (tous avec le même résultat), j'ai la réponse.

Une réponse courte est: la valeur par défaut de Robocopy est (sauf si vous spécifiez quelque chose de différent via des paramètres) qu'il copiera tout fichier dont l' horodatage OU la taille du fichier diffère . N'oubliez pas que Robocopy copie TOUJOURS de la source à la destination. Donc, si vous avez un fichier ET plus récent dans la destination, Robocopy le remplacera par le fichier plus ancien et plus petit de la source (c'est pourquoi je mets l'accent sur le mot "diffère" - il n'est ni plus récent ni plus grand , juste différent).

À un niveau plus profond, vous pouvez vérifier avec l'option / it même si les attributs d'un fichier diffèrent et copier ceux qui diffèrent également - même si la taille du fichier et l'horodatage sont les mêmes (OK, pour un 100%, je ne sais pas si cela copiera le fichier ou seulement les attributs manquants, mais comme les fichiers sont identiques, le résultat sera le même).

J'ai trouvé la longue documentation citée dans l'autre thread - il s'agit de la version XP010 (je suppose que c'était Windows XP). Mais il n'y a tout simplement pas de documentation plus récente pour robocopy. Vous pouvez trouver la documentation ici:

http://theether.net/download/Microsoft/Utilities/robocopy.pdf (Lisez la section "Utilisation des classes de fichiers Robocopy", tout y est assez précis)

La documentation concerne une ancienne version de Robocopy (sous Win7, vous avez généralement la version XP027) - mais vous pouvez vérifier les changements de version sur ce site - qui a une vue d'ensemble très soignée:

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

L'essentiel est qu'il n'y a pas beaucoup de différences entre même XP et Win7 - seulement des changements mineurs et que les changements devaient ajouter des paramètres - pas les modifier (à l'exception du paramètre / mir). Et je pense qu'il est sûr de dire que le mécanisme de comparaison n'aura pas changé - car ce serait une chose énorme par rapport au très petit changement de l'ajout de paramètres supplémentaires.

C'est probablement la raison pour laquelle il n'y a pas de nouvelle documentation.

J'espère que cela vous aidera si vous recherchez les mêmes informations et que vous lisez ceci. J'ai essayé d'être précis et j'ai fait mes recherches avec soin.


2
Utilise-t-il les horodatages créés, modifiés ou les deux?
user643011

@ user54512 Je ne comprends pas du tout .. donc utilise-t-il des horodatages ou des hachages?
Shayan

1
@shayan: son écrit là, si Timestamp OR Filesize diffère, il copiera de la source à la destination. Pas de hachage. Le reste est dans la documentation que je mets dans le lien.
user54512
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.