Robocopy para copiar apenas novas pastas e arquivos

4

Para localizar todos os novos arquivos e subpastas em alguma pasta raiz (digamos, Documentos) e copiá-los para outro disco ( J: neste caso)

Linha de comando usada:

robocopy c:\users\valery\documents j:\robocopy /XO /E /MAXAGE:20131030 /XD

Resultado: Uma árvore de pastas completa criada. Apenas novos arquivos copiados, como supostamente. É bom

Um ponto é que eu não quero criar todas as subpastas em um disco de destino, se não houver novos arquivos nelas.

Os resultados são aceitáveis, mas há muito trabalho para percorrer todas as pastas e para encontrar novos arquivos, bem como entender quais subpastas são novas

    
por Valery Shampal 08.11.2013 / 10:22

4 respostas

4

Você pode adicionar /S para isso. Você não precisa do \E , que é para copiar diretórios vazios. Você nem precisará do \XO , que é feito pelo \MAXAGE .

/S :: copy Subdirectories, but not empty ones.

Quando nenhum arquivo é copiado em um diretório, o diretório não é criado no destino.

robocopy c:\users\valery\documents j:\robocopy /S /MAXAGE:20131030 /XD {directories_to_exclude}

Se você não tem diretórios para excluir, basta usar:

robocopy c:\users\valery\documents j:\robocopy /S /MAXAGE:20131030

Você pode fazer um robocopy /? para toda a ajuda.

 /S :: copy Subdirectories, but not empty ones.
 /E :: copy subdirectories, including Empty ones.
 /XD dirs [dirs]... :: eXclude Directories matching given names/paths.
 /XO :: eXclude Older files.
 /MAXAGE:n :: MAXimum file AGE - exclude files older than n days/date.
    
por 08.11.2013 / 10:30
3

Meus comandos simples que funcionam maravilhosamente são:

RoboCopy.exe  "\\SourceServer\Folder" "X:\WEB" /copy:datso /mir /fft /r:0 /w:0 /secfix /mt:20 /xo /xf thumbs.db /log+:X:\TON-FS4.log /nc /ns /np /ndl /nfl /tee

Explicação: X:\WEB é minha pasta de destino.

Switches:
/ copy: datso: especifica as propriedades do arquivo a serem copiadas:
(d: dados, um: atributos, t: carimbos de hora, s: lista de controle de acesso NTFS (ACL), o: informações do proprietário)
/ mir: espelha uma árvore de diretórios
/ fft: assume tempos de arquivo FAT, importantes ao copiar dados / r: 0: número de novas tentativas em falha / w: 0: tempo de espera entre tentativas 0 segundos
/ secfix: Corrige a segurança do arquivo em todos os arquivos, mesmo os ignorados | / mt: 20: cria 20 segmentos de cópias
/ xo: exclui arquivos mais antigos - se o arquivo de destino existe e é a mesma data ou mais recente que a fonte - não se preocupe em sobrescrevê-lo.
/ xf thumbs.db: Exclui os arquivos "thumbs.db" (path) que você pode usar caracteres wild aqui (ei: * .mp3)
/log+:filename.log: Grava a saída de status no arquivo de log especificado
(anexa ao arquivo de log existente) ou para usar um novo log apenas /log:filename.log

Não neste caso particular, mas espero que ajude alguém quando fizer a migração de servidores de arquivos.

    
por 17.08.2017 / 00:06
0

robocopy.exe "Q: \ TEST" "T: \ TEST" / E / XO / LOG +: "T: test.log"

    
por 01.03.2017 / 18:49
0
robocopy.exe "Q:\TEST" "T:\TEST" /E /XO /LOG+:"T:test.log

Apenas para quebrar isto para bertieb - este código serve para correr diretamente da linha de comando e não em um script de morcego.

Definir origem & Destinos:

robocopy.exe "Q:\TEST" "T:\TEST"

"Q:\TEST" = Define o diretório de origem para a unidade mapeada "Q"

"T:\TEST" = Define o diretório de destino para a unidade mapeada "T"

OPÇÕES USADAS:

/E /XO /LOG+:"T:test.log"
  1. /E : Copiar subdiretórios, incluindo os vazios
  2. /XO : excluir arquivos antigos
  3. LOG+ : Isto irá registrar o processo robocopy em um arquivo .log chamado test, que estará no diretório raiz do destino (ou seja, acima da pasta "TEST" em T). O LOG + anexará o status de saída ao arquivo test.log em vez de gravá-lo.

NOTA LATERAL:

A opção LOG+ pode ser alterada para a opção LOG se você quiser salvar apenas as informações da sessão mais recente.

Versão fácil de ler de mais informações sobre o Robocopy ou o Documentação da Microsoft .

    
por 08.03.2018 / 17:10