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:
|
/dcopy:<copyflags> |
Especifica o que será copiado nos diretórios. Os valores válidos para essa opção são:
|
/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:
|
/a-:[RASHCNETO] | Remove os atributos especificados dos arquivos copiados. Os valores válidos para essa opção são:
|
/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:<y|n> |
Habilita ou desabilita a retenção do estado esparso dos arquivos durante o processo de cópia. Se nenhuma opção for selecionada, o padrão será sim (habilitado). |
/noclone | Não tenta bloquear a clonagem como uma otimização. |
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 n kilobytes, megabytes ou gigabytes. |
/iorate:<n> [kmg] |
A taxa de E/S solicitada em n kilobytes megabytes ou gigabytes por segundo. |
/threshold:<n> [kmg] |
O limite de tamanho de arquivo para limitação em n kilobytes, megabytes ou gigabytes (consulte 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:
|
/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:
|
/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 em n kilobytes, 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