Tentando aprender o Robocopy para um plano de backup básico, e tentei isso em um arquivo bat:
@echo off
echo "Hello World!"
robocopy C:\Testfolder Z:\Testfolder
pause
onde Z: é uma unidade de rede (uma unidade externa USB conectada à porta USB do roteador)
Existem apenas dois arquivos em C:\Testfolder - 02.jpg e 02-03.jpg.
A primeira vez que executei isso, ele criou Testfolder em Z: e copiou as duas imagens.
Curioso para saber o que aconteceria, executei novamente - desta vez, as mensagens na tela dizem que copiou 02.jpg, mas pulou 02-03.jpg. A mesma coisa com executá-lo novamente.
Por que isso aconteceria?
Responder1
Por padrão, o robocopy copia apenas os arquivos que acredita terem sido alterados desde a última vez que você o executou. Você pode confirmar isso vendo o status no final da cópia. Deveria dizer Arquivos ignorados é 1. Talvez seja necessário incluir a /v
opção para obter melhores detalhes.
Como você está copiando para uma unidade baseada em rede conectada ao seu roteador, há uma boa chance de que haja um bug no horário do arquivo e isso esteja fazendo com que o robocopy veja uma data e hora diferentes em um dos arquivos de destino. Problemas de atributos de arquivo são comuns em compartilhamentos de samba baseados em Linux, como o que provavelmente é usado pelo seu roteador. Isso explicaria por que ele continua copiando novamente um arquivo se ele não foi alterado. Você pode tentar o /timfix
parâmetro para ver se ele corrigirá a hora nos arquivos e interromperá a cópia novamente dos arquivos inalterados.
Se você deseja que o robocopy copie arquivos iguais e inalterados, adicione a /is
opção.
Mais informações aqui:https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy