O robocopy pode mostrar o console e criar um arquivo de log?

4

Estou trabalhando com o robocopy pela primeira vez e descobri que a maior parte foi resolvida e funciona bem, exceto o registro em log.

Eu experimentei um monte e, se eu executar meu trabalho assim:

robocopy /xc /xn /xo "source" "destination" *.* /COPY:DAT /E  

Eu vejo meu trabalho sendo executado linha por linha no console do powershell.

Se eu executar assim:

robocopy /xc /xn /xo "source" "destination" *.* /COPY:DAT /E /L LOG:mylogfile.log

Eu recebo um arquivo "dry run" mostrando-me o que acontece quando eu o executo "de verdade"

E quando eu executo assim:

robocopy /xc /xn /xo "source" "destination" *.* /COPY:DAT /E /LOG:mylogfile.log

O trabalho é executado, mas não vejo nada no console, exceto:

Log File : mylogfile.log

com um cursor intermitente até que o trabalho esteja concluído. Quando o trabalho for concluído, poderei ver os resultados no meu log.

Meu entendimento é que o robocopy não cria um log por padrão. Minha pergunta é, existe uma maneira de ter tanto o console mostrando o progresso linha por linha como o meu primeiro conjunto de comandos acima E registrar o trabalho em um arquivo como o meu terceiro conjunto de comandos tudo em uma corrida?

    
por BitBug 11.04.2015 / 02:10

1 resposta

4

Parece que você precisa de um tee . (Não a variedade bebível, embora você possa desfrutar de uma xícara disso também, enquanto o robocopy faz o seu trabalho.)

powershell -command "robocopy 'drive:\source dir' 'drive:\target dir' /np | tee 'drive:\log file.log'"

(Ou simplesmente digite powershell e, em seguida, no prompt do PS, digite seu comando robocopy canalizado via tee para o arquivo de log.)

Edit: Ok, agora eu me sinto idiota, porque o robocopy tem um parâmetro / tee embutido que não posso acreditar que nunca notei antes. p>     

por 11.04.2015 / 05:54