Como ocultar as linhas “Extra File” e “100%” da saída do robocopy?

17

Eu tenho um script robocopy para fazer o backup de nossos repositórios do Kiln que são executados todas as noites, algo parecido com isto:

robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /LOG:"$backupLogLocation\BackupKiln.txt" /NFL /NDL /NP

Na saída, há uma tonelada de linhas que contêm "Extra files", assim:

*EXTRA File              153    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes
100%  
100%  
100%  
100%  
100%  
100%  
100%  
\indices\kiln-2
robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /LOG:"$backupLogLocation\BackupKiln.txt" /NFL /NDL /NP
\index\_yxe.fdt *EXTRA File 12 E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes
*EXTRA File              153    E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes
100%  
100%  
100%  
100%  
100%  
100%  
100%  
\indices\kiln-2%pre%\index\_yxe.fdt *EXTRA File 12 E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes%pre%\indices\kiln-2%pre%\index\_yxe.fdx *EXTRA File 128 E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes%pre%\indices\kiln-2%pre%\index\_yxe.fnm *EXTRA File 363 E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes%pre%\indices\kiln-2%pre%\index\_yxe.frq *EXTRA File 13 E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes%pre%\indices\kiln-2%pre%\index\_yxe.nrm
\indices\kiln-2%pre%\index\_yxe.fdx *EXTRA File 128 E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes%pre%\indices\kiln-2%pre%\index\_yxe.fnm *EXTRA File 363 E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes%pre%\indices\kiln-2%pre%\index\_yxe.frq *EXTRA File 13 E:\Kiln Backup\elasticsearch\data\elasticsearch-kiln\nodes%pre%\indices\kiln-2%pre%\index\_yxe.nrm

Além disso, existem centenas de linhas na parte inferior que contêm apenas "100%", como este:

%pre%

Além de tornar os arquivos de log enormes (há muitas pastas / arquivos no repositório do Kiln), torna-se irritante examinar os logs agora e depois para ver se tudo estava funcionando bem.

  1. Como faço para impedir que "Arquivos extras" apareçam no log? (edit: as linhas inteiras, não apenas o texto como / NC irá parar)
  2. Como faço para impedir que essas linhas "100%" sejam exibidas no log?

Eu tentei todas as combinações de switch que eu posso imaginar (as chaves atuais estão listadas acima no comando), mas nenhuma delas parece esconder isso!

    
por Danny Tuppeny 28.11.2012 / 09:21

4 respostas

8

Só percebi que você está perdendo um / NC lá.

/ NC: sem aula - não registre as classes de arquivo.

Os arquivos de classe são ... O que significa robocopy por tweaked, solitário e extra?

Então, eu tentaria: robocopy "$ liveRepoLocation" "$ cloneRepoLocation" / MIR / MT / W: 3 / R: 100 / NP /LOG:"$backupLogLocation\BackupKiln.txt "/ NC

Editar 1

Meu mal. Não viu que você já mencionou tentando / NC

Eu testei aqui. Parece que a opção / MIR ignora as opções de log. Também / MT estraga tudo, adicionando 100%.

A única maneira de trabalhar foi

D:\robocopy>robocopy source destination /MIR /W:3 /R:100 /NS /NC /NFL /NDL /NP /LOG:log.txt".

* Realmente funciona com / MIR. Mas você tem que especificar / NFL e /NDL.* Não sei se isso é aceitável para você.

Se você tentar / MT, ele ainda mostrará o parvo 100%

Editar 2

Eu sei que a pergunta era sobre o Robocopy, mas eu acho que você deveria experimentar o RichCopy link

Aqui está a linha de comando:

richcopy "D:\robocopy\source" "D:\robocopy\destination" /P /QO /QP "D:\robocopy\report.log" /UE /US /UD /UPC /UFC /USC /UPR /UET

Ele inicia a GUI do RichCopy e é fechado quando concluído.

E aqui está o log

28/11/2012 11:35:19,0,Copy start,

28/11/2012 11:35:20,0,Source path : D:\robocopy\source,

28/11/2012 11:35:20,0,Destination path : d:\robocopy\destination,

28/11/2012 11:35:20,0,Source file count : 12 files,

28/11/2012 11:35:20,0,Copied file count : 13 files,

28/11/2012 11:35:20,0,Purged file count : 1,224 files,

28/11/2012 11:35:20,0,Elapsed time : 00:00:01,

28/11/2012 11:35:20,0,Average performance : 1,641,528 bytes / sec,

28/11/2012 11:35:20,0,Average performance : 13 files / sec,

28/11/2012 11:35:20,0,Copy complete,D:\robocopy\source

    
por 28.11.2012 / 11:31
4

A opção /XX exclui a inclusão dos arquivos extras. Perversamente, essa opção está listada em File Selection options, não Logging . É o oposto da opção /X logging, eu acho.

    
por 14.04.2015 / 16:02
2

Acho que isso pode funcionar:

robocopy sourceDir targetDir *.* /njh /njs /ndl /np | find /v "*EXTRA File"

Portanto, basta enviar a saída para "find" com o / V para excluir linhas que contenham o texto especificado "* Extra File".

    
por 29.06.2015 / 10:23
0

que tal usar os interruptores

 /MIR /MT /W:3 /R:100 /NFL /NDL /NP 2>&1 | findstr /v /L /C:" * EXTRA " | findstr /v /L /C:"100%%" > "log file name with or without path"

então você tem

robocopy "$liveRepoLocation" "$cloneRepoLocation" /MIR /MT /W:3 /R:100 /NFL /NDL /NP 2>&1 | findstr /v /L /C:" * EXTRA " | findstr /v /L /C:"100%%" > "$backupLogLocation\BackupKiln.txt"
  • o %% duplo é necessário para ter um% na string de pesquisa
  • o 2 > & 1 redireciona o fluxo stderr para stdout porque algumas mensagens são gravadas em stderr e queremos capturar essas linhas como a opção / LOG.
  • os 2 comandos findstr com a opção / v localizam todas as linhas que não contêm a cadeia de pesquisa
  • o > "log filename" redireciona a saída final para o seu arquivo de log. Se você normalmente usaria / LOG: + , use > > "log filename" em vez

Notas: se você estiver usando isso em um script PowerShell, como você parece ser, você precisará usar findstr em vez de encontrar como em um arquivo .bat ou .cmd. Note que o / L e / C: não são suportados por find mas para o comando find eles não são necessários.

    
por 04.09.2013 / 00:47