En théorie, l'utilisation /DCOPY:T
devrait 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:\Brushes
vers D:\NEWBrushes
et /DCOPY:T
doit 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:\NEWBrushes
dossier est défini sur la date et l'heure actuelles.
Il semble donc que la /DCOPY:T
fonctionnalité 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:\NEWBrushes
s'il n'existe pas déjà
- Copiez l'horodatage de
C:\Brushes
àD:\NEWBrushes
- Copiez des fichiers et des sous-dossiers de
C:\Brushes
versD:\NEWBrushes
Il semble qu'à l'étape 3, la modification du contenu du dossier D:\NEWBrushes
entraîne le D:\NEWBrushes
changement d' horodatage de .
Pour moi, la "solution de contournement" a consisté à exécuter la robocopy
commande pour copier les fichiers et les dossiers, puis à exécuter la (même) robocopy
commande 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:\NEWBrushes
ne sera modifié et l' /DCOPY:T
option indiquera robocopy
de copier l'horodatage de C:\Brushes
à D:\NEWBrushes
(sauf s'il y a des dossiers / fichiers C:\Brushes
qui 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.