Como fazer o robocopy com o progresso registrado no console apenas?

8

Eu quero executar o RoboCopy que atualizará o console com% progress, mas não sobrecarregará o arquivo de log com% progress.

O seguinte comando RoboCopy executará a cópia desejada e anexará informações de registro no arquivo de log.

RoboCopy <source> <dest> /log+:<log file> /tee

O problema é que o arquivo de log está cheio de% progress updates. Por isso preciso alterar o comando para isso:

RoboCopy <source> <dest> /log+:<log file> /tee /np

Agora, o problema é que não estou recebendo% de atualizações de progresso na tela.

Eu li o link algumas vezes agora e posso encontre um switch (es) que eu preciso. Estou faltando alguma coisa ou o que eu quero conseguir não é possível?

    
por Tim Murphy 21.05.2011 / 16:30

2 respostas

2

Como ninguém respondeu isso por tanto tempo, pensei em sugerir algumas coisas.

Se você estiver usando scripts em lote, não será muito difícil usar sed para remover as informações de progresso indesejadas do arquivo de log. Eu não tenho experiência suficiente para lhe dar uma solução usando-o sem gastar algum tempo nisso.

Existe uma única versão do arquivo .exe de sed em UnxUtils (com um pouco mais de versão atualizada no zip de atualização).

Outra opção seria usar XXCOPY em vez de Robocopy . Ele tem um número verdadeiramente ridículo de switches (acima de 230), o que permite que você faça qualquer coisa você quer. Você tem que passar uma noite inteira escolhendo quais você quer usar. Ele também tem uma caixa de diálogo de progresso da GUI, se você preferir usar isso.

Há uma versão gratuita para uso pessoal, que não pode ser usada para scripts automatizados, pois você precisa seguir interativamente os prompts, ao contrário da versão paga.

Outraalternativaéo RichCopy , que tem uma GUI que pode ser usada para escolher o seu opções. Em seguida, ele pode fornecer a linha de comando da sua operação para uso em scripts em lote.

    
por 27.08.2011 / 19:12
1

Re: robocopy e progresso registrado 'ruído'

Solução: use apenas / TEE e registre o 'ruído', caso contrário você não verá nenhum progresso. Em seguida, use sed, como sugerido primeiro para limpar o arquivo de log da seguinte forma:

sed-i.bak "s / \ x0d. * \ x0d. * $ //" logfile.txt

remova o arquivo .bak se não quiser um backup não corrigido. sed está disponível para windows aqui e funciona bem, pelo menos para uso de linha única *.

link

* (os comandos sed em scripts unix bash / cshell são geralmente distribuídos em várias linhas, adicionando mais flexibilidade e complexidade. Não espero que esses tipos de comandos sed funcionem com scripts windows cmd, mas o sed ainda é útil em janelas).

    
por 17.09.2011 / 12:30

Tags