Redirigir la salida desde la línea de comando de Windows a un archivo de texto

Redirigir la salida desde la línea de comando de Windows a un archivo de texto

Una de las formas más útiles de registrar y solucionar problemas del comportamiento de los comandos o trabajos por lotes que ejecuta en Windows es redirigir la salida a un archivo.

Sin embargo, hay algunas formas diferentes en que puede redirigir las escrituras de la línea de comandos en un archivo. La opción que elija depende de cómo desee ver la salida de su comando.

Tabla de contenido

    Esto se debe a que la salida estándar para el comando se redirigió a un archivo llamado myOutput.TXT. El archivo ahora existe en el mismo directorio donde ejecutó el comando. La salida de error estándar aún se muestra como lo hace normalmente.

    Nota: Tenga cuidado de cambiar el activo directorio para el símbolo del sistema antes de ejecutar el comando. De esta manera, sabrá dónde se almacenan los archivos de salida.

    Puede ver la salida estándar que fue al archivo escribiendo "myOutput.txt "en la ventana de comando. Esto abrirá el archivo de texto en su visor de archivos de texto predeterminado. Para la mayoría de las personas, esto suele ser el bloc de notas.exe.

    La próxima vez que ejecute el mismo comando, el archivo de salida anterior se eliminará. Se recreará un nuevo archivo de salida con la salida del último comando.

    Redirigir la salida estándar escribe en el mismo archivo

    ¿Qué pasa si no quieres sobrescribir el mismo archivo?? Otra opción es usar >> en lugar de> redirigir a un archivo de salida. En el caso de este ejemplo, escribiría:

    prueba directa.EXE >> MYOUTPUT.TXT

    Verá la misma salida (solo el error).

    Pero en este caso, en lugar de sobrescribir el archivo de salida, este comando agrega la nueva salida al archivo de salida existente.

    Cada vez que ejecute un comando y agregue la salida a un archivo, escribirá la nueva salida estándar al final del archivo existente.

    Redirigir el error estándar a un archivo

    De la misma manera que puede redirigir las escrituras de salida estándar en un archivo, también puede emitir el flujo de error estándar a un archivo.

    Para hacer esto, deberá agregar 2> Al final del comando, seguido del archivo de error de salida que desea crear.

    En este ejemplo, escribirá el comando:

    prueba directa.exe> myOutput.txt 2> salida.errar

    Esto envía la transmisión de salida estándar a myOutput.txt, y la secuencia de error estándar a la salida.errar. El resultado es que no se muestra ningún flujo de salida en la ventana de la consola.

    Sin embargo, puede ver los mensajes de error escribiendo producción.errar. Esto abrirá el archivo en su visor de archivos de texto predeterminado.

    Como puede ver, cualquier mensaje de error del comando se emite al archivo de error. Al igual que con la salida estándar, puede usar >> en su lugar, para agregar el error a los errores de los comandos de ejecución previamente.

    Redirigir todas las escrituras de salida a un mismo archivo

    Todos los enfoques anteriores dan como resultado múltiples archivos. Un archivo es para la secuencia de salida estándar y el otro es para el flujo de error estándar.

    Si desea incluir ambas salidas en el mismo archivo, también puede hacerlo. Para hacer esto, solo necesita redirigir toda la salida al mismo archivo utilizando el siguiente comando.

    prueba directa.exe 1> myOutput.txt 2> y 1

    Así es como funciona este comando:

    • La salida estándar se dirige al archivo de salida identificado por el número de salida 1.
    • La salida de error estándar identificada por el número 2 se redirige al archivo de salida identificado por el número 1.

    Esto agregará la salida de error al final de la salida estándar.

    Esta es una forma útil de ver toda la salida para cualquier comando en un archivo.

    Silenciamiento de flujos de salida estándar o de error

    También puede desactivar la salida estándar o el error estándar redirigiendo la salida a un NUL en lugar de un archivo.

    Usando el ejemplo anterior, si solo desea una salida estándar y no hay error estándar, puede usar el siguiente comando:

    prueba directa.exe 1> myOutput.txt 2> nul

    Esto dará como resultado el mismo archivo de salida que el primer ejemplo anterior donde solo redirigió la salida estándar, pero con este comando el error no se eculará dentro de la consola. Tampoco creará un archivo de registro de errores.

    Esto es útil si no le importan ningún error y no quiere que se conviertan en una molestia.

    Puede realizar cualquiera de los mismos comandos de salida anteriores desde dentro de un archivo BAT y la salida de esa línea irá al archivo de salida que especifique. Esta es una forma útil de ver si algún comando dentro de un archivo BAT tenía algún error cuando intentaron ejecutar.