Eu uso este comando para ver a saída no console e em um arquivo:
powershell -command "my_command_1 | tee ('logs\{0}.log' -f (Get-Date -format 'yyyy.MM.dd-HH.mm'))"
powershell -command "my_command_2 | tee ('logs\{0}.log' -f (Get-Date -format 'yyyy.MM.dd-HH.mm'))"
# etc
Não funciona tão bem quanto eu esperava e tenho algumas perguntas:
- Como redireciono o stderr também para um arquivo?
A saída funciona muito estranha. Para alguns comandos, existe um grande atraso entre o texto impresso e o console / arquivo atualizado. Para alguns outros comandos, a saída parece atualizada quando o texto é impresso (eu executo comandos sem tee e sei o que deve ser impresso). Esse atraso torna esse tee quase inútil - e se algum erro crítico for impresso para que eu precise interromper o comando, mas não veja nada até que seja tarde demais?
Para alguns comandos, a saída é impressa somente após a conclusão do comando completo.
- Além disso, mesmo que o comando solicite a entrada do usuário, a saída do console / arquivo está vazia! Para esse comando, eu sei o que ele espera e imprime cegamente o texto necessário e funcionou, mas para outros - sem saída, esperarei que algo aconteça infinitamente enquanto o comando aguardará minha entrada!
Existem soluções para esses problemas? Caso contrário, esse item no PowerShell é completamente inútil.