In teoria, l'utilizzo /DCOPY:T
dovrebbe risolvere tutti i tuoi problemi.
Ma l'ho visto accadere e non sono sicuro che lo definirei un "bug", ma piuttosto una conseguenza della sequenza di operazioni (OK, bug).
Questo comando dovrebbe funzionare per copiare tutti i file dal C:\Brushes
al D:\NEWBrushes
, e /DCOPY:T
dovrebbe causare il timestamp della cartella di origine da copiare nella cartella di destinazione:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
Quello che ho visto (almeno su alcune versioni di Robocopy) è che il comando ha esito positivo, ma il timestamp della D:\NEWBrushes
cartella è impostato sulla data e l'ora correnti.
Quindi sembra che la /DCOPY:T
funzione non funzioni per la cartella "base" (più in alto) che si sta copiando.
Credo che funzioni, ma che il timestamp della cartella di destinazione sia "calpestato" da operazioni che sono più avanti nella sequenza operativa.
Quello che credo stia accadendo per questo comando:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
è qualcosa del genere:
- Crea una cartella
D:\NEWBrushes
se non esiste già
- Copia il timestamp da
C:\Brushes
aD:\NEWBrushes
- Copia file e sottocartelle da
C:\Brushes
aD:\NEWBrushes
Sembra che il passaggio 3, la modifica del contenuto della cartella D:\NEWBrushes
causi la D:\NEWBrushes
modifica del timestamp di .
Per me, la "soluzione alternativa" è stata quella di eseguire il robocopy
comando per copiare i file e le cartelle, quindi eseguire il (stesso) robocopy
comando una seconda volta.
Quindi, la prima volta che esegui:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
tutti i file e le cartelle verranno copiati. Quindi eseguirlo di nuovo:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
(or)
robocopy "C:\Brushes" "D:\NEWBrushes" /DCOPY:T
La seconda volta robocopy
viene eseguito, nessun file o cartella all'interno D:\NEWBrushes
verrà modificato e l' /DCOPY:T
opzione indicherà robocopy
di copiare il timestamp da C:\Brushes
a D:\NEWBrushes
(a meno che non ci siano cartelle / file C:\Brushes
che sono cambiati dalla prima esecuzione di robocopy
).
rsync
, ma cosa succede se non hai una barra finale alla fine della cartella di destinazione? Che ne dici di provare a modificare lo script a livello di riga di comando invece di usare la GUI? So per certo che lo strumento da riga di comando farà ciò di cui hai bisogno.