Redirigir la salida a un archivo de texto desde dentro de un Batch archivo

Siddharth Bishnoi 20 marzo 2023
  1. Operador de redirección en secuencia de Batch comandos
  2. Redirigir la salida mediante el operador de redirección en el Batch script
  3. Redirigir la salida a un archivo de texto llamando a una subrutina desde dentro de un Batch archivo
Redirigir la salida a un archivo de texto desde dentro de un Batch archivo

Este tutorial le enseñará las diferentes formas de redirigir la salida desde un archivo de texto.

Operador de redirección en secuencia de Batch comandos

Podemos redirigir la salida de un Batch archivo a un archivo de texto usando el operador de redirección. Un operador de redirección redirige la entrada al comando o la salida del comando.

Al ejecutar un Batch archivo, el comando se ejecuta en cmd.exe. La salida de estos comandos se obtiene en dos flujos, es decir, salida estándar y error estándar.

Estas salidas se pueden redirigir a archivos separados o a un solo archivo.

Un operador de redirección se denota por >. Por defecto, el cmd usa > para la salida estándar, lo mismo que 1>.

Sin embargo, usa 2> para el error estándar. La sintaxis básica de un operador de redirección se proporciona a continuación.

command > filename

Redirigir la salida a un archivo de texto puede ser muy útil. Cuando hay un rango de salida muy largo o se ejecuta un comando en un intervalo de tiempo, los datos deben guardarse.

Además, si ocurre un error al ejecutar un Batch archivo, desaparece rápidamente con una pantalla de consola en blanco. En todos los casos, la salida y el error se pueden redirigir a un archivo de texto.

Cuando se utiliza un Batch archivo, es mejor redirigir la salida desde dentro del Batch archivo. Por lo tanto, cada vez que lo ejecute haciendo doble clic en él, redirigirá la salida, lo cual es mejor que hacerlo manualmente cada vez desde la línea de comandos.

Redirigir la salida mediante el operador de redirección en el Batch script

Podemos redirigir la salida estándar de todo el Batch archivo o solo una parte de él. Además, la salida estándar y el error estándar se pueden guardar en un solo archivo o en archivos separados.

Redirigir la salida estándar a un archivo de texto desde dentro de un Batch archivo

Para redirigir la salida estándar a un archivo de texto, agregue el operador de redirección entre el comando y el archivo de texto, como se muestra en la siguiente sintaxis.

command > filename

Por ejemplo, tenemos que redirigir la salida del comando powercfg a un archivo de texto llamado stdoutput.txt. El siguiente comando creará un nuevo archivo llamado stdoutput.txt.

Si el archivo ya existe, se sobrescribirá.

echo "The output will be redirected to a text file"
powercfg /a > stdoutput.txt

redirección de archivos de prueba

Producción:

redirección de salida

El operador > sobrescribe el archivo existente con la nueva salida cuando ejecuta el Batch archivo. Para mantener la salida anterior y agregar la nueva, use >> en lugar de > para agregar la salida al mismo archivo de texto.

echo "The output will be redirected to a text file"
powercfg /a >> stdoutput.txt

agregar archivo de prueba

Producción:

agregar salida

Redirigir la salida estándar y el error estándar a un archivo de texto separado desde dentro de un Batch archivo

Para redirigir la salida estándar (stdout) y el error estándar (stderr) a archivos de texto separados, use 1> para la salida estándar y 2> para el error estándar, como se muestra a continuación.

@echo off
echo "The output will be redirected to stdoutput.txt"
powercfg /a 1> stdoutput.txt
echo "The errors will be redirected to stderror.txt"
powercfg /energy 2> stderror.txt

redirección de archivo de prueba a archivos separados

Salida estándar:

salida estándar

Error estándar:

error estándar de salida

Redirigir todas las salidas a un solo archivo desde dentro de un Batch archivo

Podemos guardar la salida estándar y el error estándar en un solo archivo usando 2>&1 después del nombre del archivo.

La sintaxis para esto se muestra a continuación:

@echo off
echo "The output will be redirected to stdoutput.txt"
powercfg /a > stdoutput.txt 2>&1

redirección de archivo de prueba a un solo archivo

Producción:

redirección de salida a un solo archivo

De manera similar, para agregar ambas salidas a un solo archivo, use >> en lugar de > en el comando anterior.

ifconfig >> output.txt 2>&1

testfile agregar redireccionamiento a un solo archivo

El resultado será el mismo ya que no hay errores en el archivo.

Redirigir la salida a un archivo de texto llamando a una subrutina desde dentro de un Batch archivo

Otra forma de redirigir la salida de un Batch archivo a un archivo de texto es mediante los comandos call y sub. A continuación se muestra un ejemplo de cómo llamar a una subrutina etiquetada.

@echo off
call:sub_ipconfig > ipconfig.txt
call:sub_powercfg > powercfg.txt

GOTO: END

:sub_ipconfig
ipconfig
EXIT /B

:sub_powercfg
powercfg /a
EXIT /B

:END

Sub de llamada de archivo de prueba

Salida- ipconfig.txt:

llamada de salida sub ipconfig

Salida- powercfg.txt:

llamada de salida sub powercfg

Aquí, el comando de llamada se usa para llamar a la subrutina como está etiquetada. Primero, se llama a la subrutina sub_ipconfig, y la salida se redirige a un archivo llamado ipconfig.txt.

Luego se llama a la segunda subrutina sub_powercfg, y la salida se redirige a un archivo llamado powercfg.txt. El comando exit /B detiene la ejecución después de esta línea y continúa ejecutando el programa principal.

Si usamos exit en lugar de exit /b, detendrá la ejecución del archivo Batch.

Entonces, hemos discutido dos formas diferentes de redirigir la salida dentro de un Batch archivo.