Outil en ligne de commande Robocopy (livré avec la plupart des versions de Windows)
Sur ma machine Windows 10, il se trouve dans C:\Windows\System32
Selon Wikipedia, il peut être utilisé avec l'ensemble d'options suivant pour préserver les horodatages des fichiers et des répertoires, ainsi que d'autres attributs :
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPYALL /E /R:0
-
/DCOPY:T
préserver les horodatages d'origine des répertoires (requiert la version XP026 ou ultérieure)
-
/E
: Copier les répertoires récursivement, y compris les répertoires vides
-
/R:0
: ne pas réessayer les fichiers verrouillés (le nombre de tentatives de copies échouées par défaut est d'1 million),
-
/COPYALL
: Copier toutes les informations de fichier,
(équivalent à /COPY:DATSOU
, où
D
= Données,
A
= Attributs,
T
= Horodatages de fichiers,
S
= Sécurité = ACL NTFS,
O
= Informations sur le propriétaire,
U
= Informations d'audit),
Si vous voulez uniquement préserver les horodatages de date et des répertoires, mais ne souhaitez pas que les sous-répertoires vides soient copiés et ne souhaitez pas que d'autres attributs soient préservés, vous pouvez utiliser :
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPY:T /S
où /S
copie les sous-répertoires non vides
Pour voir la syntaxe complète, tapez robocopy /?
dans une invite de commandes, ou consultez ces articles de blog : https://ss64.com/nt/robocopy.html et https://techjourney.net/robocopy-syntax-command-line-switches-and-examples/
Un exemple de commande que j'ai récemment exécutée :
Robocopy D:\ C:\D_backup /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
Remarquez comment exclure 2 sous-répertoires nécessite d'utiliser le drapeau /XD
deux fois. De plus, la deuxième exclusion de répertoire utilise des guillemets car il y a des espaces dans le nom du répertoire.
Enfin, vous pouvez ajouter le drapeau /L
pour tester la commande avant de la réaliser réellement. De cette manière, vous pouvez vérifier qu'elle ne copie (ou ne supprime) aucun répertoire/fichier non désiré, et qu'il n'y a pas d'erreurs dans votre commande.
Édition : problème lors de la copie depuis un Répertoire Racine (ou disque) vers un Dossier (répertoire non racine)
Après avoir exécuté la commande d'exemple ci-dessus, le répertoire était invisible ! (Même si l'option afficher les fichiers cachés
et afficher les fichiers système
étaient cochées dans Windows 10 !) La commande suivante selon https://serverfault.com/a/455029/399723 a corrigé cela :
attrib -h -s C:\D_backup
De manière alternative, l'ajout de /A-:SH
"annule l'Attribut Masqué des fichiers système", ce qui peut empêcher que le répertoire devienne invisible initialement, comme indiqué sur https://serverfault.com/a/565804/399723. Voyez aussi https://ss64.com/nt/robocopy.html.
Cette discussion apporte plus de détails sur cette option en tant que solution.
Robocopy D:\ C:\D_backup /A-:SH /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
Autre Logiciel :
De manière alternative, vous pouvez télécharger une version GUI de Robocopy si vous ne souhaitez pas utiliser la ligne de commande.
Un autre utilitaire Windows est XCopy, bien qu'il soit inclus dans Windows 10, il est en voie de suppression. Consultez le lien pour les points à surveiller.
La page Wikipedia pour RoboCopy (liée en haut de ce post) répertorie d'autres logiciels pouvant être utilisés.