Uso este comando para ver la salida tanto en la consola como en un archivo:
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
No funciona tan bien como esperaba y tengo algunas preguntas:
- ¿Cómo redirecciono stderr también a un archivo?
El resultado funciona muy extraño. Para algunos comandos hay una gran demora entre la impresión del texto y la actualización de la consola / archivo. Para algunos otros comandos, la salida parece actualizada cuando se imprime el texto (ejecuto comandos sin tee y sé lo que debería imprimir). Este retraso hace que esta camiseta sea casi inútil: ¿qué pasa si se imprime un error crítico, por lo que debo detener el comando, pero no veré nada hasta que sea demasiado tarde?
Para algunos comandos, la salida se imprime solo después de completar el comando completo.
- Además, incluso si el comando solicita la entrada del usuario, ¡la salida de la consola / archivo está vacía! Para ese comando, sé lo que espera e imprimo a ciegas el texto necesario y funcionó, pero para otros, sin salida, ¡esperaré que algo suceda infinitamente mientras que el comando esperará mi entrada!
¿Hay soluciones para estos problemas? De lo contrario, esta camiseta en PowerShell es completamente inútil.