Estoy escribiendo un programa C en Windows, mi printf llama a print a la línea de comando, y sé que puedo redirigir toda esta salida a un archivo de texto usando:
myProgram.exe > mylog.txt
Sin embargo, deseo ver también el resultado que se habría impreso en la consola, así como registrarlo todo en un archivo de texto.
¿Hay alguna forma de hacer esto? Estaba pensando en usar tail para monitorear el archivo de registro.
windows
command-line
stdout
usuario79397
fuente
fuente
Respuestas:
Windows PowerShell tiene una herramienta que puede hacer eso, llamada
tee
así por la herramienta Unix que hace lo mismo.Alternativamente, hay puertos de Unix
tee
para Windows:fuente
En Windows, todo lo que puedo pensar es hacer esto:
Esto se basa en el ejemplo de comando en su pregunta: si de hecho desea agregar la salida a la
mylog.txt
que desea usar en>>
lugar de>
, perotype
imprimiría el archivo de registro completo, no solo lo que se ha agregado.Si descarga GnuWin32 CoreUtils , puede usar el método Unix (
tee
comando) para hacer esto:Esto escribirá la salida de myProgram.exe
mylog.txt
pero también la mostrará en la consola al mismo tiempo. Si solo desea agregarmylog.txt
, puede pasar el-a
parámetro a tee.fuente
Uso Visual Studio Code y abro el archivo de registro desde allí, mantiene la vista actualizada casi en tiempo real a medida que cambia el archivo de registro
fuente
Simplemente tenía una necesidad similar y usé Tail como el OP sugirió que podrían:
El "> C: \ Temp \ Commands_Log.txt" crea el archivo de registro y agrega la salida de todos los comandos ubicados dentro del (paréntesis).
El primer comando dentro de los paréntesis debe ser iniciar Tail, que se abrirá en una nueva ventana de comandos.
Los ecos al final son para que los usuarios desconocidos les avisen cuando todo esté completo.
fuente