Este tutorial descreve como usar o robocopy para copiar todos os arquivos e pastas de uma fonte para um destino. Com o mesmo comando, você pode executá-lo novamente mais tarde, e ele só copiará arquivos que tenham mudado para o destino. Além disso, se os arquivos foram excluídos da fonte, ele irá removê-los do destino também. Este comando também irá manter todas as permissões NTFS e atributos de arquivo.
Um cenário de uso típico para este comando é copiar uma grande compartilhamento de arquivos. Você pode executar o comando uma vez para copiar a maior quantidade de dados, então você pode executá-lo novamente mais tarde, e ele só irá copiar arquivos alterados, o que o tornará muito mais rápido.
robocopy C:\source C:\dest /TEE /LOG+:c:\robolog.txt /MIR /copyall /zb /w:1 /r:2 /xo
Primeiro, vou mostrar exemplos deste comando em ação, e depois vou quebrar o comando para mostrar o que cada parte faz. (Certifique-se de lançar o prompt do comando como administrador)
Na imagem abaixo, você verá um diretório de origem e destino. A fonte tem múltiplas pastas com dados nelas. O destino está vazio.
Após executar o comando robocopy acima, enquanto usando C:\ITswapshop.com\source como pasta de origem, e C:\ITswapshop.com\destino como pasta de destino, você pode ver a pasta de destino agora parece idêntica à pasta de origem:
> Agora vou apagar um arquivo da fonte, e depois adicionar um arquivo diferente à fonte. Veja o que acontece quando eu executar o comando novamente:
O arquivo que foi apagado do código fonte, também é apagado do destino. Além disso, o novo arquivo adicionado ao código-fonte é copiado para o destino. Todos os arquivos que não foram modificados são pulados.
Agora, vamos quebrar o comando para que possamos saber exatamente o que cada switch faz:
/TEE – Isto irá mostrar a saída do comando na janela do console, e irá escrevê-lo em um log para revisão posterior.
/LOG+c:\robolog.txt – Isto diz ao comando onde escrever os logs. O sinal + diz-lhe para anexar o ficheiro de log, em vez de o sobrescrever.
/MIR – Isto irá copiar todos os ficheiros e subpastas, e irá remover ficheiros/pastas do destino, se já não existirem na fonte.
/COPYALL – Isto irá copiar todas as permissões e atributos NTFS (permissões de segurança, timestamps, informação do dono…)
/ZB – Isto usa o modo reinicializável quando copia ficheiros. Se um arquivo estiver em uso, ele irá tentar novamente após um determinado período de tempo. Se o acesso for negado, ele tentará copiar em modo de backup.
/W:1 – Isto especifica esperar 1 segundo entre tentativas ao copiar ficheiros.
/R:2 – Isto especifica o número de tentativas em cópias falhadas.
/XO – Isto exclui ficheiros/pastas mais antigos se o ficheiro/pasta de destino existir e for a mesma data