In teoria, l'utilizzo /DCOPY:Tdovrebbe 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:\Brushesal D:\NEWBrushes, e /DCOPY:Tdovrebbe 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:\NEWBrushescartella è impostato sulla data e l'ora correnti.
Quindi sembra che la /DCOPY:Tfunzione 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:\NEWBrushesse non esiste già
- Copia il timestamp da
C:\BrushesaD:\NEWBrushes
- Copia file e sottocartelle da
C:\BrushesaD:\NEWBrushes
Sembra che il passaggio 3, la modifica del contenuto della cartella D:\NEWBrushescausi la D:\NEWBrushesmodifica del timestamp di .
Per me, la "soluzione alternativa" è stata quella di eseguire il robocopycomando per copiare i file e le cartelle, quindi eseguire il (stesso) robocopycomando 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 robocopyviene eseguito, nessun file o cartella all'interno D:\NEWBrushesverrà modificato e l' /DCOPY:Topzione indicherà robocopydi copiare il timestamp da C:\Brushesa D:\NEWBrushes(a meno che non ci siano cartelle / file C:\Brushesche 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.