Eu tenho dois discos rígidos:
G: é uma unidade USB externa conectada a um PC com Windows 10 H: é uma unidade de rede (outra unidade USB conectada à porta USB da porta USB do roteador da rede doméstica)
Copiei todos os arquivos e subpastas de G:/my_data_folder para H:/my_data_folder. No momento, H:/my_data_folder é uma cópia exata de G:/my_data_folder.
Agora quero criar um comando Robocopy que possa executar periodicamente no PC Win10, que copiará de G: para H:
- qualquer arquivo/pasta em G:/my_data_folder que ainda não exista em H:/my_data_folder
- qualquer arquivo em G:/my_data_folder que já existe em H:/my_data_folder, mas é uma versão mais recente (ou seja, foi salvo mais recentemente). Este arquivo recém-copiado substituirá o arquivo antigo em H:.
Meu entendimento do Robocopy é que NÃO copiar arquivos existentes da mesma data/hora é o comportamento padrão, então não preciso excluí-los explicitamente.
NÃO quero que H:/my_data_folder espelhe G:/my_data_folder. Ou seja, nunca apague nada de H:/my_data_folder, mesmo que agora esteja ausente de G:/my_data_folder.
Não preciso de um arquivo de log, mas quero ver o que ele fez na tela.
Aqui está minha tentativa de compor o comando robocopy apropriado:
robocopy g:/my_data_folder h:/my_data_folder /e /np /fft /mt:8 /z /r:5 /w:5
Onde:
- /e = copia até diretórios vazios
- /np = sem progresso de cópia de arquivo - não é necessário
- /fft = em caso de erros de data/hora devido à unidade de rede
- /mt:8 = use 8 threads simultâneos para acelerar as coisas
- /z = modo reiniciável para que possa se recuperar de uma transferência interrompida
- /r:5 = tente no máximo 5 reinicializações
- /w:5 = espera 5 segundos entre as reinicializações
Isso fará o que eu quero? Perdi algum interruptor crítico para tal tarefa?
Obrigado.
Seu roteiro está perfeito como está.
Apenas para abordar o
/XX
argumento ligeiramente confuso "use apenas no caso" feito na resposta de harrymc:" Para evitar exclusões na pasta de destino, sugiro adicionar a
/XX
opção. Isso deve ser o padrão, mas eu o adicionaria explicitamente apenas por precaução. "Eu recomendo não adicionar switches redundantes "apenas no caso". A
/XX
opção não fará nada em sua situação, além de criar confusão.A página citada na outra resposta explica claramente qual é o objetivo dessa opção:
"
/XX
(excluir extra) Se usado em conjunto com /Purge ou /Mir , a opção excluir extra terá precedência e impedirá que qualquer arquivo seja excluído do destino."Como seu script não tem nem
/MIR
os/PURGE
switches, podemos dizer com 100% de certeza que adicionar/XX
"apenas no caso" é redundante.Eu uso o Robocopy há anos e enviei muitos terabytes de dados, tudo sem nunca usar o
/XX
switch. Robocopy nunca excluiu um único arquivo "extra".Maiores esclarecimentos podem ser vistos aqui .
Só queria esclarecer isso!
Para evitar exclusões na pasta de destino, sugiro adicionar o
/xx
switch. Isso deveria ser o padrão, mas eu o adicionaria explicitamente apenas por precaução.Este interruptor é ainda descrito como: