Em teoria, o uso /DCOPY:T
deve resolver todos os seus problemas.
Mas já vi isso acontecer, e não tenho certeza se chamaria de "bug", mas uma consequê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 carimbo de data e hora da D:\NEWBrushes
pasta está definido para a data e hora atuais.
Portanto, parece que o /DCOPY:T
recurso não funciona para a pasta "base" (mais acima) que você está copiando.
Acredito que esteja funcionando, mas que o registro de data e hora da pasta de destino está sendo "pisado" por operações que são posteriormente na sequência da operação.
O que acredito estar acontecendo para esse comando:
robocopy "C:\Brushes" "D:\NEWBrushes" /COPY:DAT /DCOPY:T
é algo como isto:
- Crie uma pasta
D:\NEWBrushes
se ela ainda não existir
- Copie o carimbo de data e hora de
C:\Brushes
paraD:\NEWBrushes
- Copie arquivos e subpastas de
C:\Brushes
paraD:\NEWBrushes
Parece que a Etapa 3, a modificação do conteúdo da pasta, D:\NEWBrushes
faz com que o carimbo de data / hora D:\NEWBrushes
seja alterado.
Para mim, a "solução alternativa" foi executar o robocopy
comando para copiar os arquivos e pastas e, em seguida, executar o (mesmo) robocopy
comando pela segunda vez.
Então, a primeira vez que você executa:
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 que for robocopy
executado, nenhum arquivo ou pasta D:\NEWBrushes
será modificado e a /DCOPY:T
opção informará robocopy
para copiar o carimbo de data / hora de C:\Brushes
para D:\NEWBrushes
(a menos que haja pastas / arquivos C:\Brushes
que foram alterados desde a primeira execução de robocopy
).
rsync
, mas e se você não tiver uma barra no final da pasta de destino? Que tal tentar modificar o script no nível da linha de comando em vez de usar a GUI? Sei que a ferramenta de linha de comando fará o que você precisa.