Redirigir la salida a un archivo de texto desde dentro de un Batch archivo
- Operador de redirección en secuencia de Batch comandos
- Redirigir la salida mediante el operador de redirección en el Batch script
- Redirigir la salida a un archivo de texto llamando a una subrutina 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
Producción:
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
Producción:
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
Salida estándar:
Error estándar:
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
Producción:
De manera similar, para agregar ambas salidas a un solo archivo, use >>
en lugar de >
en el comando anterior.
ifconfig >> output.txt 2>&1
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
Salida- ipconfig.txt
:
Salida- powercfg.txt
:
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.