Strumento da riga di comando Robocopy (viene fornito con la maggior parte delle versioni di Windows)
Sulla mia macchina Windows 10 si trova inC:\Windows\System32
Da Wikipedia , può essere utilizzato con il seguente set di opzioni per preservare i timestamp di file e directory, nonché altri attributi:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPYALL /E /R:0
/DCOPY:T
preservare i timestamp delle directory originali (richiede la versione XP026 o successiva)
/E
: Copia le directory in modo ricorsivo, comprese le directory vuote
/R:0
: non ritentare i file bloccati (il numero predefinito di tentativi su copie non riuscite è 1 milione),
/COPYALL
: Copia tutte le informazioni sui file
(equivalente a /COPY:DATSOU
, dove
D
= Dati,
A
= attributi,
T
= Timestamp dei file ,
S
= Sicurezza = ACL NTFS,
O
= Informazioni sul proprietario,
U
= Informazioni di controllo),
Se si desidera solo conservare i timestamp di data e directory, ma non si desidera copiare sottodirectory vuote e non si desidera conservare altri attributi, è possibile utilizzare:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPY:T /S
dove /S
copia le sottodirectory non vuote
Per visualizzare la sintassi completa, digitare robocopy /?
al prompt dei comandi o dare un'occhiata a questi post del blog: https://ss64.com/nt/robocopy.html e
https://techjourney.net/robocopy-syntax-command-line -switches-e-examples /
Un esempio di un comando che ho eseguito di recente:
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
Nota come l'esclusione di 2 sottodirectory richiede l' /XD
utilizzo della bandiera due volte. Inoltre, la seconda esclusione di directory utilizza le virgolette perché ci sono spazi nel nome della directory.
Infine, puoi aggiungere il /L
flag per testare il comando prima di farlo sul serio. In questo modo è possibile verificare che non copi (o rimuova) eventuali directory / file che non si desidera e che non vi siano errori nel comando.
Modifica: gotcha quando si copia da una directory radice (aka unità) in una cartella (directory non root)
Dopo aver eseguito il comando di esempio sopra, la directory non era visibile! (Anche se show hidden files
e show system files
sono stati controllati in Windows 10!) Il seguente comando secondo https://serverfault.com/a/455029/399723 ha risolto questo problema:
attrib -h -s C:\D_backup
In alternativa, l'aggiunta di /A-:SH
"ripristina l'attributo nascosto dai file di sistema", in tal modo potrebbe impedire che la directory venga nascosta in primo luogo, come da https://serverfault.com/a/565804/399723 . Vedi anche https://ss64.com/nt/robocopy.html .
Questa spiegazione getta più luce su questa opzione come soluzione.
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
Altro software:
In alternativa, è possibile scaricare una versione GUI di robocopy se non si desidera utilizzare la riga di comando.
Un'altra utility di Windows è XCopy , sebbene sia inclusa in Windows 10, è obsoleta. Vedi il link per i gotchas.
La pagina Wikipedia per RoboCopy (collegata all'inizio di questo post) elenca altri software che possono essere utilizzati.