Como copiar arquivos e diretórios de maneira eficiente e segura com o comando robocopy

O comando robocopy é uma ferramenta de linha de comando para cópia de arquivos e diretórios em ambientes Windows. Ele permite que o usuário faça cópias de arquivos de maneira mais eficiente e segura do que o comando xcopy, que é uma ferramenta mais antiga. Com o robocopy, é possível copiar arquivos em lote, manter a estrutura de diretórios original, fazer cópias parciais e verificar a integridade dos arquivos.

Sintaxe:

robocopy <origem> <destino> [<arquivos> ...] [<opções>]

Opções:

  • /e: Copia subdiretórios, incluindo os vazios.
  • /mir: Copia subdiretórios e exclui arquivos do destino que não existem na origem.
  • /z: Usa o modo de cópia em reinício (para cópias de arquivos grandes).
  • /r:<número>: Especifica o número de vezes que o comando deve tentar copiar um arquivo antes de desistir.
  • /w:<tempo>: Especifica o tempo em segundos que o comando deve esperar antes de tentar copiar novamente um arquivo.
  • /log:<arquivo>: Especifica o arquivo de log a ser gerado.
  • /np: Impede que o progresso da cópia seja exibido.

Exemplo 1:

robocopy C:\Origem D:\Destino /E /R:0 /W:0 /LOG:d:\Apps\QualALei.log

Em resumo, o comando está copiando todos os arquivos e pastas da unidade C:\Origem para a unidade D:\Destino, sem interrupções em caso de falha e registrando informações detalhadas sobre a operação em um arquivo de log na unidade D:\Apps.

Exemplo 2

robocopy C:\Origem D:\Destino /e /mir /z /r:3 /w:10 /log:c:\temp\robocopy.log

Esse comando vai copiar todos os arquivos e pastas da unidade C:\Origem para a unidade D:\Destino, incluindo subpastas e arquivos ocultos. 

Os parâmetros /e e /mir especificam que o robocopy deve copiar todos os arquivos e subpastas da origem para o destino, incluindo arquivos e pastas vazias, e manter a mesma estrutura de diretórios na origem e no destino. 

O parâmetro /z especifica que deve usar o modo de cópia em rede com reinício automático em caso de interrupções. 

O parâmetro /r:3 especifica que o deve tentar copiar cada arquivo até três vezes em caso de falha. O parâmetro /w:10 especifica que o robocopy deve aguardar 10 segundos entre as tentativas em caso de falha.

O parâmetro /log:c:\temp\robocopy.log especifica que um arquivo de log deve ser criado em c:\temp\robocopy.log para registrar as informações sobre a operação de cópia.


Exemplo 3 (Dica para copiar arquivos de rede instáveis ou muito lenta):

Para copiar a mídia de instalação do Windows 10 da rede para uma unidade USB com ajustes para conexões de rede lentas ou instáveis, você pode usar o seguinte comando:
robocopy "\\dicasquefunfa\midia\windows10\setup" "c:\usb" /E /Z /R:5 /W:15 /FFT
Neste exemplo, o parâmetro "/E" é usado para copiar todos os subdiretórios, incluindo os vazios, além de copiar os arquivos. O parâmetro "/Z" permite que a cópia continue a partir do ponto em que parou, caso a conexão seja interrompida. Os parâmetros "/R" e "/W" estão ajustados para cinco tentativas de cópia e um tempo de espera de 15 segundos entre as tentativas. O parâmetro "/FFT" é usado para ajustar a janela de tempo em que o Robocopy considera que um arquivo foi modificado. Isso pode ajudar a evitar a cópia de arquivos que não foram modificados, economizando tempo e largura de banda.

Observações importantes:

  • Lembrando que mesmo com essas sugestões, a cópia pode levar mais tempo do que o normal devido à sua conexão de rede. É bom você se certificar de que a conexão de rede esteja estável e tente executar a cópia durante um período de baixa atividade da rede para minimizar a interferência.
  • O exemplo 2 deve ser utilizando com muito cuidado. Esse comando está copiando todos os arquivos e pastas da unidade C:\Origem para a unidade D:\Destino, sem interrupções em caso de falha e registrando informações detalhadas sobre a operação em um arquivo de log na unidade D:\Apps.


Bat para fazer backup de arquivos e pastas

Segue abaixo um exemplo de arquivo de lote (bat) para fazer backup de arquivos e pastas de uma determinada origem para um destino:

@echo off

set origem=C:\Meus Documentos

set destino=D:\Backup

robocopy %origem% %destino% /e /mir /z /r:3 /w:10 /log:C:\Temp\backup.log

pause

Nesse exemplo, o comando robocopy está sendo utilizado para copiar todos os arquivos e pastas da unidade C:\Meus Documentos para a unidade D:\Backup, mantendo a sincronização entre as duas unidades e registrando informações detalhadas sobre a operação em um arquivo de log na unidade C:\Temp. O comando pause é utilizado para manter a janela do prompt aberta após a execução do script, permitindo a verificação dos resultados.

Lembrando que é importante ajustar as variáveis origem e destino de acordo com o que você se deseja fazer backup e onde se deseja salvar. É possível também alterar os parâmetros do comando robocopy de acordo com as necessidades específicas do backup

⚠️Atenção!

Lembre sempre que o comando robocopy é uma ferramenta poderosa e que pode causar danos irreparáveis se não for utilizado com cuidado. É recomendável fazer testes antes de executar o comando em produção e verificar se o destino está correto antes de executar a cópia.


É isso aí, com essas dicasquefunfa é possível utilizar o comando robocopy para copiar arquivos e diretórios de maneira eficiente e segura em ambientes Windows. 🙂

Comentários

LEIA-ME

Desenvolver ferramentas e scripts que facilitem o seu trabalho diário, solucionar problemas e documentar tudo, criando passo a passos detalhados de como resolvê-los, é uma tarefa que requer tempo e dedicação. Por esse motivo, contamos com a sua contribuição.

Sua doação não é obrigatória, mas é muito importante para que possamos continuar mantendo o DicasQueFunfa funcionando e desenvolvendo soluções úteis para você.



Mais