Desejo executar o RoboCopy que atualizará o console com% progress, mas não sobrecarregará o arquivo de log com% progress.
O comando RoboCopy a seguir executará a cópia desejada e anexará as informações de log no arquivo de log.
RoboCopy <source> <dest> /log+:<log file> /tee
O problema é que o arquivo de log está cheio de% de atualizações de progresso. Portanto, preciso alterar o comando para isso:
RoboCopy <source> <dest> /log+:<log file> /tee /np
Agora, o problema é que não recebo% de atualizações de progresso na tela.
Eu li http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx algumas vezes agora e não consigo encontrar as opções necessárias. Estou faltando alguma coisa ou o que eu quero alcançar não é possível?
Respostas:
Como ninguém respondeu isso por tanto tempo, pensei em sugerir algumas coisas.
Se você estiver usando scripts em lote, não deve ser muito difícil usar o sed para remover as informações de progresso indesejadas do arquivo de log. Não tenho experiência suficiente para fornecer uma solução para usá-lo sem gastar algum tempo com isso.
Existe uma única versão do arquivo .exe
sed
no UnxUtils (com uma versão um pouco mais atualizada no zip de atualização).Outra opção seria usar XXCOPY em vez de
Robocopy
. Possui um número realmente ridículo de switches (acima de 230), o que permite que você faça o que quiser. Você tem que passar a noite inteira escolhendo quais deseja usar. Ele também possui uma caixa de diálogo de progresso da GUI, se você preferir usá-lo.Existe uma versão gratuita para uso pessoal, que não pode ser usada para scripts automatizados, pois você precisa seguir as instruções de maneira interativa, diferente da versão paga.
Outra alternativa é o RichCopy , que possui uma GUI que pode ser usada para escolher suas opções. Em seguida, ele pode fornecer a linha de comando da sua operação para uso em scripts em lote.
fonte
Re: robocopy e progresso registrado 'ruído'
Solução: use apenas / TEE e deixe registrar o 'ruído', caso contrário você não verá nenhum progresso. Em seguida, use sed, conforme sugerido pela primeira vez para limpar o arquivo de log da seguinte maneira:
sed -i.bak "s / \ x0d. * \ x0d. * $ //" logfile.txt
remova o .bak se não desejar um backup não corrigido. O sed está disponível para janelas aqui e funciona bem, pelo menos para uso em uma única linha.
http://gnuwin32.sourceforge.net/packages/sed.htm
* (os comandos sed nos scripts unix bash / cshell geralmente são distribuídos em várias linhas, adicionando mais flexibilidade e complexidade. Eu não espero que esse tipo de comando sed funcione com scripts cmd do Windows, mas o sed ainda é útil no Windows).
fonte
stdout
atravéssed
diretamente?tee
comando pudesse ser usado em vez da/TEE
opção do Robocopy , mas acabei de perceber que faz parteTCC/LE
e não umCMD
comando padrão . Está disponível noPowerShell
entanto.