En théorie, l'utilisation /DCOPY:Tdevrait résoudre tous vos problèmes.
Mais, j'ai vu cela se produire, et je ne suis pas sûr que j'appellerais cela un "bug", mais plutôt une conséquence de la séquence des opérations (OK, bug).
Cette commande doit fonctionner pour copier tous les fichiers de C:\Brushesvers D:\NEWBrusheset /DCOPY:Tdoit entraîner la copie des horodatages du dossier source dans le dossier de destination:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
Ce que j'ai vu (au moins sur certaines versions de Robocopy), c'est que la commande réussit, mais l'horodatage du D:\NEWBrushesdossier est défini sur la date et l'heure actuelles.
Il semble donc que la /DCOPY:Tfonctionnalité ne fonctionne pas pour le dossier "de base" (le plus haut) que vous copiez.
Je crois que cela fonctionne, mais que l'horodatage du dossier de destination est "piétiné" par des opérations plus tard dans la séquence d'opérations.
Je pense que ce qui se passe pour cette commande:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
est quelque chose comme ça:
- Créer un dossier
D:\NEWBrushess'il n'existe pas déjà
- Copiez l'horodatage de
C:\BrushesàD:\NEWBrushes
- Copiez des fichiers et des sous-dossiers de
C:\BrushesversD:\NEWBrushes
Il semble qu'à l'étape 3, la modification du contenu du dossier D:\NEWBrushesentraîne le D:\NEWBrusheschangement d' horodatage de .
Pour moi, la "solution de contournement" a consisté à exécuter la robocopycommande pour copier les fichiers et les dossiers, puis à exécuter la (même) robocopycommande une deuxième fois.
Donc, la première fois que vous exécutez:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
tous les fichiers et dossiers seront copiés. Puis le relancer:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
(or)
robocopy "C:\Brushes" "D:\NEWBrushes" /DCOPY:T
La deuxième fois robocopy, aucun fichier ou dossier D:\NEWBrushesne sera modifié et l' /DCOPY:Toption indiquera robocopyde copier l'horodatage de C:\Brushesà D:\NEWBrushes(sauf s'il y a des dossiers / fichiers C:\Brushesqui ont changé depuis la première exécution de robocopy).
rsync, mais que faire si vous n'avez pas de barre oblique à la fin de votre dossier cible? Que diriez-vous d'essayer de modifier le script au niveau de la ligne de commande au lieu d'utiliser l'interface graphique? Je sais pertinemment que l'outil de ligne de commande fera ce dont vous avez besoin.