robocopy

Copia dados de um arquivo de um local para outro.

Syntax

robocopy <source> <destination> [<file>[ ...]] [<options>]

Por exemplo, para copiar um arquivo chamado yearly-report.mov de c:\reports para compartilhamento de arquivo em \\marketing\videos e habilitar o multi-thread para obter melhor desempenho (com o parâmetro /mt) e a opção de reiniciar a transferência caso ela seja interrompida (com o parâmetro /z ), digite:

robocopy c:\reports "\\marketing\videos" yearly-report.mov /mt /z

Importante

Se algum dado for copiado da raiz de um dispositivo, o diretório de destino adotará o atributo "oculto" durante o processo de cópia.

Parâmetros

Parâmetro Descrição
<source> Especifica o caminho para o diretório de origem.
<destination> Especifica o caminho para o diretório de destino.
<file> Selecione os arquivos a serem copiados. Você pode usar caracteres curinga (* ou ?). Se você não especificar esse parâmetro, o *.* será usado como o valor padrão.
<options> Especifica as opções a serem usadas com o comando robocopy, incluindo as opções cópia, arquivo, tentar novamente, registrar em log e tarefa.

Opções de cópia

Opção Descrição
/s Copia subdiretórios. Essa opção exclui automaticamente os diretórios vazios.
/e Copia subdiretórios. Essa opção inclui automaticamente os diretórios vazios.
/lev:<n> Copia apenas os n níveis superiores da árvore do diretório de origem.
/z Copia os arquivos no modo de reinicialização. No modo de reinicialização, se uma cópia de arquivo for interrompida, o robocopy continuará de onde parou em vez de copiar novamente todo o arquivo.
/b Copia arquivos no modo de backup. No modo de backup, o robocopy substitui as configurações de permissão (ACLs) de arquivo e pasta, o que poderia bloquear o acesso.
/zb Copia os arquivos no modo de reinicialização. Se o acesso ao arquivo for negado, mudará para o modo de backup.
/j Copia usando E/S não armazenada em buffer (recomendado para arquivos grandes).
/efsraw Copia todos os arquivos criptografados no modo RAW do EFS.
/copy:<copyflags> Especifica quais propriedades do arquivo serão copiadas. Os valores válidos para essa opção são:
  • D - Dados
  • A - Atributos
  • T - Carimbos de Data/Hora
  • X - Ignorar fluxos de dados alternativos
  • S - ACL (lista de controle de acesso) do NTFS
  • O - Informações do proprietário
  • U - Informações de auditoria
O valor padrão para a opção /COPY é DAT (dados, atributos e carimbos de data/hora). O sinalização X é ignorado se /B ou /ZB é usado.
/dcopy:<copyflags> Especifica o que será copiado nos diretórios. Os valores válidos para essa opção são:
  • D - Dados
  • A - Atributos
  • T - Carimbos de Data/Hora
  • E - Atributo estendido
  • X - Ignorar fluxos de dados alternativos
O valor padrão dessa opção é DA (dados e atributos).
/s Copia arquivos com segurança (equivalente a /copy:DATS).
/copyall Copia todas as informações do arquivo (equivalente a /copy:DATSOU).
/nocopy Não copia nenhuma informação do arquivo (útil com /purge).
/secfix Corrige a segurança do arquivo em todos os arquivos, até mesmo os ignorados.
/timfix Corrige os tempos do arquivo em todos os arquivos, até mesmo os ignorados.
/purge Exclui arquivos e diretórios de destino que não existem mais na origem. Usar essa opção com a opção /e e um diretório de destino permite que as configurações de segurança do diretório de destino não sejam substituídas.
/mir Espelha uma árvore de diretório (equivalente a /e mais /purge). Usar essa opção com a opção /e e um diretório de destino substitui as configurações de segurança do diretório de destino.
/mov Move arquivos e os exclui da origem depois que são copiados.
/move Move arquivos e diretórios e os exclui da origem depois que são copiados.
/a+:[RASHCNET] Adiciona os atributos especificados aos arquivos copiados. Os valores válidos para essa opção são:
  • R - Somente leitura
  • A - Arquivo
  • S - Sistema
  • H - Oculto
  • C - Compactado
  • N - Conteúdo não indexado
  • E - Criptografado
  • T - Temporário
/a-:[RASHCNETO] Remove os atributos especificados dos arquivos copiados. Os valores válidos para essa opção são:
  • R - Somente leitura
  • A - Arquivo
  • S - Sistema
  • H - Oculto
  • C - Compactado
  • N - Conteúdo não indexado
  • E - Criptografado
  • T - Temporário
  • O - Offline
/create Cria apenas uma árvore de diretório e arquivos de tamanho zero.
/fat Cria arquivos de destino usando apenas nomes de arquivo FAT com formato de caracteres 8.3.
/256 Desativa o suporte para caminhos com mais de 256 caracteres.
/mon:<n> Monitora a origem e é executado novamente quando mais do que n alterações são detectadas.
/mot:<m> Monitora a origem e é executado novamente em m minutos se forem detectadas alterações.
/rh:hhmm-hhmm Especifica os tempos de execução em que novas cópias podem ser iniciadas.
/pf Verifica os tempos de execução por arquivo (não por passagem).
/Ipg:<n> Especifica a lacuna entre os pacotes para liberar largura de banda em linhas lentas.
/sj Copia junções (links simbólicos) para o caminho de destino em vez dos destinos de link.
sl Não gera links simbólicos, cria uma cópia do link.
/mt:<n> Cria cópias multi-thread com n threads. O n deve ser um número inteiro entre 1 e 128. O valor padrão para n é 8. Para obter um melhor desempenho, redirecione a saída usando a opção /log.

O parâmetro /mt não pode ser usado com os parâmetros /ipg e /efsraw.

/nodcopy Não copia nenhuma informação de diretório (é executado o padrão /dcopy:DA).
/nooffload Copia arquivos sem usar o mecanismo de descarregamento de cópia do Windows.
/compress Solicita compactação de rede durante a transferência de arquivos, quando aplicável.
/sparse Habilita a retenção do estado esparso dos arquivos durante a cópia.

Importante

Ao usar a opção de cópia /secfix, utilize uma das alternativas abaixo para especificar o tipo de informações de segurança que você quer copiar:

  • /copyall
  • /copy:o
  • /copy:s
  • /copy:u
  • /sec

Observação

O parâmetro /mt começou a ser usado no Windows Server 2008 R2 e sua funcionalidade se aplica às versões atuais do Windows Server.

Opções de limitação de cópia de arquivo

Opção Descrição
/iomaxsize:<n>[kmg] O tamanho máximo de e/s solicitado por ciclo de leitura/gravação em nkilobytes, megabytes ou gigabytes.
/iorate:<n>[kmg] A taxa de e/s solicitada em nkilobytes megabytes ou gigabytes por segundo.
/threshold:<n>[kmg] A limitação de tamanho de arquivo em nkilobytes, megabytes ou gigabytes (veja Comentários).

Essas opções de limitação são usadas para especificar a largura de banda máxima de E/S que o Robocopy permite que seja usada em bytes por segundo. Se não especificar em bytes por segundo, números inteiros podem ser usados se k, m ou g forem especificados. A largura de banda mínima de E/S limitada é de 524.288 bytes, mesmo que um valor menor seja especificado.

Opções de seleção de arquivo

Opção Descrição
/a Copia somente arquivos para os quais o atributo Arquivo está definido.
/m Copia somente arquivos para os quais o atributo Arquivo está definido e redefine o atributo Arquivo.
/ia:[RASHCNETO] Inclui apenas arquivos para os quais qualquer um dos atributos especificados está definido. Os valores válidos para essa opção são:
  • R - Somente leitura
  • A - Arquivo
  • S - Sistema
  • H - Oculto
  • C - Compactado
  • N - Conteúdo não indexado
  • E - Criptografado
  • T - Temporário
  • O - Offline
/xa:[RASHCNETO] Inclui apenas arquivos para os quais qualquer um dos atributos especificados está definido. Os valores válidos para essa opção são:
  • R - Somente leitura
  • A - Arquivo
  • S - Sistema
  • H - Oculto
  • C - Compactado
  • N - Conteúdo não indexado
  • E - Criptografado
  • T - Temporário
  • O - Offline
/xf <filename>[ ...] Exclui arquivos que correspondem aos nomes ou caminhos especificados. Você pode usar caracteres curinga (* e ?).
/xd <directory>[ ...] Exclui diretórios que correspondem aos nomes e caminhos especificados.
/xc Exclui arquivos existentes com o mesmo carimbo de data/hora, mas com tamanhos de arquivo diferentes.
/xn Os arquivos de diretório de origem mais recentes do que o destino são excluídos da cópia.
/xo Os arquivos de diretório de origem mais antgos do que o destino são excluídos da cópia.
/xx Exclui arquivos e diretórios extras presentes no destino, mas não a origem. A exclusão de arquivos extras não removerá arquivos do destino.
/xl Exclui arquivos e diretórios "isolados" presentes na origem, mas não o destino. A exclusão de arquivos isolados impede que novos arquivos sejam adicionados ao destino.
/im Inclui arquivos modificados (tempos de alteração diferentes).
/is Inclui os mesmos arquivos. Os mesmos arquivos são idênticos em relação ao nome, tamanho, hora e todos os atributos.
/it Inclui arquivos "ajustados". Os arquivos ajustados têm o mesmo nome, tamanho e hora, mas atributos diferentes.
/max:<n> Especifica o tamanho máximo do arquivo (para excluir arquivos maiores do que n bytes).
/min:<n> Especifica o tamanho mínimo do arquivo (para excluir arquivos menores do que n bytes).
/maxage:<n> Especifica a idade máxima do arquivo (para excluir arquivos mais antigos do que n dias ou data).
/minage:<n> Especifica a idade mínima do arquivo (para excluir arquivos mais recentes do que n dias ou data).
/maxlad:<n> Especifica a data máxima de último acesso (exclui arquivos não utilizados desde n).
/minlad:<n> Especifica a data mínima de último acesso (exclui arquivos usados desde n). Se n for menor do que 1900, n especificará o número de dias. Caso contrário, n especificará uma data no formato AAAAMMDD.
/xj Exclui pontos de junção, que normalmente são incluídos por padrão.
/fft Pressupõe tempos de arquivo FAT (precisão de dois segundos).
/dst Compensa a diferença de tempo de uma hora do DST.
/xjd Exclui pontos de junção de diretórios.
/xjf Exclui pontos de junção de arquivos.

Opções de nova tentativa

Opção Descrição
/r:<n> Especifica o número de repetições em cópias com falha. O valor padrão de n é 1.000.000 (um milhão de novas tentativas).
/w:<n> Especifica o tempo de espera entre as tentativas, em segundos. O valor padrão de n é 30 (tempo de espera de 30 segundos).
/reg Salva os valores especificados nas opções /r e /w como configurações padrão no registro.
/tbd Especifica que o sistema aguarda a definição dos nomes de compartilhamento (erro de nova tentativa 67).
/lfsm Opera no modo de espaço livre baixo que permite copiar, pausar e retomar (confira Comentários).
/lfsm:<n>[kmg] Especifica o tamanho do piso (inicial) em nkilobytes, megabytes ou gigabytes.

Opções de log

Opção Descrição
/l Especifica que os arquivos devem ser apenas listados (não devem ser copiados, excluídos ou ter carimbo de data/hora).
/x Relata todos os arquivos extras, não apenas os selecionados.
/v Produz uma saída detalhada e mostra todos os arquivos ignorados.
/ts Inclui carimbos de data/hora do arquivo de origem na saída.
/fp Inclui os nomes de caminho completos dos arquivos na saída.
/bytes Imprime tamanhos como bytes.
/ns Especifica que os tamanhos de arquivo não devem ser registrados.
/nc Especifica que as classes de arquivo não devem ser registradas.
/nfl Especifica que os nomes de arquivo não devem ser registrados.
/ndl Especifica que os nomes de diretório não devem ser registrados.
/np Especifica que o progresso da operação de cópia (o número de arquivos ou diretórios copiados até o momento) não será exibido.
/eta Mostra o ETA (tempo estimado de chegada) dos arquivos copiados.
/log:<logfile> Grava a saída de status no arquivo de log (substitui o arquivo de log existente).
/log+:<logfile> Grava o status da saída no arquivo de log (anexa a saída ao arquivo de log existente).
/unilog:<logfile> Grava o status da saída no arquivo de log como texto unicode (substitui o arquivo de log existente).
/unilog+:<logfile> Grava o status da saída no arquivo de log como testo Unicode (anexa a saída ao arquivo de log existente).
/tee Grava o status da saída na janela do console e no arquivo de log.
/njh Especifica que não há cabeçalho de tarefa.
/njs Especifica que não há resumo de tarefa.
/unicode Exibe o status da saída como texto unicode.

Opções de trabalho

Opção Descrição
/job:<jobname> Especifica que os parâmetros devem ser derivados do arquivo de tarefa nomeado. Para executar /job:jobname, primeiro você deve executar o parâmetro /save:jobname para criar o arquivo da tarefa.
/save:<jobname> Especifica que os parâmetros devem ser salvos no arquivo de tarefa nomeado. Isso deve ser executado antes de executar o /job:jobname. Todas as opções de cópia, nova tentativa e registro em log devem ser especificadas antes desse parâmetro.
/quit Encerra após processar a linha de comando (para exibir os parâmetros).
/nosd Indica que nenhum diretório de origem foi especificado.
/nodd Indica que nenhum diretório de destino foi especificado.
/if Inclui os arquivos especificados.

Comentários

  • Anteriormente, o uso do /PURGE ou do /MIR no diretório raiz do volume fazia com que o robocopy aplicasse a operação solicitada também nos arquivos dentro do diretório Informações de Volume do Sistema. Esse não é mais o caso, pois se um deles for especificado, o robocopy ignorará todos os arquivos ou diretórios com esse nome nos diretórios de origem e destino de nível superior da sessão de cópia.

  • A classificação de arquivos modificados só se aplica quando ambos os sistemas de arquivos de origem e de destino suportam carimbos de data/hora de alteração, como o NTFS, e os arquivos de origem e destino têm horários de alteração diferentes, mas são iguais. Por padrão, esses arquivos não são copiados. Especifique /IM para incluí-los.

  • O sinalizador /DCOPY:E solicita que a cópia de atributo estendido seja tentada para diretórios. O Robocopy continuará se os EAs do diretório não puderem ser copiados. Esse sinalizador não está incluído em /COPYALL.

  • Se /IoMaxSize ou /IoRate forem especificados, o robocopy habilitará a limitação do arquivo de cópia para reduzir a carga do sistema. Ambos podem ser ajustados para os valores ideais e para os parâmetros de cópia, mas o sistema e o robocopy têm permissão para ajustá-los aos valores permitidos, conforme necessário.

  • Se /Threshold for usado, ele especificará um tamanho mínimo de arquivo para ativar a limitação. Os arquivos abaixo desse tamanho não serão limitados. Os valores para todos os três parâmetros podem ser seguidos por um caractere de sufixo opcional, como [KMG] (kilobytes, megabytes, gigabytes).

  • A utilização do /LFSM exige que o RoboCopy opere no "modo de pouco espaço livre". Nesse modo, o robocopy pausará sempre que uma cópia de arquivo fizer com que o espaço livre do volume de destino fique abaixo de um valor de "piso". Esse valor pode ser especificado explicitamente usando o sinalizador /LFSM:n[KMG].

  • Se o /LFSM for especificado sem nenhum valor explícito de piso, o piso será definido como 10% do tamanho do volume do destino. O modo de pouco espaço livre é incompatível com /MT e /EFSRAW.

Códigos de saída (retorno)

Valor Descrição
0 Nenhum arquivo foi copiado. Nenhuma falha foi encontrada. Todos os arquivos corresponderam. Os arquivos já existem no diretório de destino, portanto, a operação de cópia foi ignorada.
1 Todos os arquivos foram copiados com êxito.
2 Há alguns arquivos adicionais no diretório de destino que não estão presentes no diretório de origem. Nenhum arquivo foi copiado.
3 Alguns arquivos foram copiados. Arquivos adicionais estavam presentes. Nenhuma falha foi encontrada.
5 Alguns arquivos foram copiados. Alguns arquivos não corresponderam. Nenhuma falha foi encontrada.
6 Existem arquivos adicionais e arquivos não correspondentes. Nenhum arquivo foi copiado e nenhuma falha foi encontrada, o que significa que os arquivos já existem no diretório de destino.
7 Os arquivos foram copiados, foram encontrados um arquivo não correspondente e alguns arquivos adicionais.
8 Vários arquivos não foram copiados.

Observação

Qualquer valor igual ou maior do que 8 indica que houve pelo menos uma falha durante a cópia.

Exemplos

É altamente recomendável ao executar o comando robocopy para criar um arquivo de log que pode ser exibido depois que o processo for concluído verificando sua integridade. Nos exemplos a seguir, cada um usa o parâmetro /LOG:. Para acrescentar qualquer informação de log ao mesmo arquivo de log, use o parâmetro /LOG+:.

Para copiar todos os arquivos e subdiretórios, incluindo diretórios vazios, da pasta "Registros" para a pasta "Backup" na unidade "D", digite o seguinte:

robocopy C:\Users\Admin\Records D:\Backup /E /ZB /LOG:C:\Logs\Backup.log

Para espelhar o conteúdo da pasta "Registros" para a pasta "Backup" na unidade "D", remova todos os arquivos no destino que não existem na origem com 2 repetições e aguardando 5 segundos entre cada repetição, digite o seguinte:

robocopy C:\Users\Admin\Records D:\Backup /MIR /R:2 /W:5 /LOG:C:\Logs\Backup.log

Para copiar todos os arquivos e subdiretórios que não estão vazios da pasta "Registros" para a pasta "Backup" na unidade "D", retendo os dados de arquivo, atributos e carimbos de data/hora com 16 operações de cópia de vários threads, digite o seguinte:

robocopy C:\Users\Admin\Records D:\Backup /S /E /COPY:DAT /MT:16 /LOG:C:\Logs\Backup.log

Para mover arquivos e subdiretórios, excluindo diretórios vazios, da pasta "Registros" para a pasta "Backup" na unidade "D" e excluir arquivos com mais de 7 dias, digite o seguinte:

robocopy C:\Users\Admin\Records D:\Backup /S /MAXAGE:7 /MOV /LOG:C:\Logs\Backup.log

Para copiar todos os arquivos e subdiretórios, incluindo diretórios vazios, da pasta "Registros" para a pasta "Backup" na unidade "D" mostrando o tempo estimado para cada arquivo e excluir todos os arquivos e diretórios no destino que não existem da origem, digite o seguinte:

robocopy C:\Users\Admin\Records D:\Backup /ETA /PURGE /LOG:C:\Logs\Backup.log

Para copiar todos os arquivos e subdiretórios da pasta chamada "Registros" na unidade "C" para uma pasta chamada "Backup" na unidade "D", limitando a taxa de E/S a 1 megabyte por segundo durante a operação de cópia, digite o seguinte:

robocopy C:\Records D:\Backup /iorate:1m