Em teoria, usar /DCOPY:T
deve resolver todos os seus problemas.
Mas, eu vi isso acontecer, e não tenho certeza se chamaria isso de "bug", mas sim uma conseqüência da sequência de operações (OK, bug).
Este comando deve funcionar para copiar todos os arquivos de C:\Brushes
para D:\NEWBrushes
e /DCOPY:T
deve fazer com que os carimbos de data e hora da pasta de origem sejam copiados para a pasta de destino:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
O que eu vi (pelo menos em algumas versões do Robocopy) é que o comando é bem-sucedido, mas o timestamp da pasta D:\NEWBrushes
está definido para a data e hora atuais.
Portanto, parece que o recurso /DCOPY:T
não funciona para a pasta "base" (mais alta) que você está copiando.
Acredito que esteja funcionando, mas que o registro de data e hora da pasta de destino esteja sendo "pisado" por operações que estão mais tarde na sequência de operações.
O que eu acredito está acontecendo para este comando:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
é algo assim:
- Crie a pasta
D:\NEWBrushes
, se ela ainda não existir
- Copie o registro de data e hora de
C:\Brushes
para D:\NEWBrushes
- Copie arquivos e subpastas de
C:\Brushes
para D:\NEWBrushes
Parece que na Etapa 3, a modificação do conteúdo da pasta D:\NEWBrushes
faz com que o registro de data e hora de D:\NEWBrushes
seja alterado.
Para mim, a "solução" foi executar o comando robocopy
para copiar os arquivos e pastas e, em seguida, executar o comando (same) robocopy
uma segunda vez.
Então, a primeira vez que você corre:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
todos os arquivos e pastas serão copiados. Em seguida, execute-o novamente:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
(or)
robocopy "C:\Brushes" "D:\NEWBrushes" /DCOPY:T
Na segunda vez em que robocopy
for executado, nenhum arquivo ou pasta dentro de D:\NEWBrushes
será modificado, e a opção /DCOPY:T
dirá a robocopy
para copiar o registro de data e hora de C:\Brushes
para D:\NEWBrushes
(a menos que haja pastas / arquivos em C:\Brushes
que foram alterados desde a primeira execução de robocopy
).