Redirección
Al ejecutar comandos en el símbolo del sistema, a veces se desea guardar la salida en un archivo en lugar de mostrarla en pantalla.
Por ejemplo, al crear un archivo de registro o al querer revisar los resultados de un comando más tarde.
La redirección es la función que hace esto posible.
Este artículo explica en detalle cómo usar la redirección en el símbolo del sistema.
¿Qué es la redirección?
La redirección es una función que cambia a dónde envía su salida un comando.
Normalmente, el resultado de ejecutar un comando se muestra en la pantalla (la ventana del símbolo del sistema). Usando la redirección, puedes guardar esa salida en un archivo.
El símbolo del sistema admite los siguientes operadores de redirección.
| Operador | Descripción |
|---|---|
> | Sobrescribir un archivo con la salida estándar |
>> | Agregar la salida estándar a un archivo |
2> | Sobrescribir un archivo con la salida de error estándar |
2>> | Agregar la salida de error estándar a un archivo |
2>&1 | Fusionar la salida de error estándar con la salida estándar |
< | Leer la entrada desde un archivo |
Salida estándar y salida de error estándar
Para entender la redirección, primero debes conocer la salida estándar y la salida de error estándar.
En el símbolo del sistema, la salida se divide en dos categorías.
| Tipo de salida | Número | Descripción |
|---|---|---|
| Salida estándar | 1 | Resultados normales del comando |
| Salida de error estándar | 2 | Mensajes de error y advertencias |
Por ejemplo, cuando dir lista archivos, los resultados van a la salida estándar. Cuando intentas eliminar un archivo que no existe, el mensaje de error va a la salida de error estándar.
Guardar la salida estándar en un archivo (>)
El operador > guarda la salida estándar de un comando en un archivo.
comando > nombre_archivo
Ejemplo
Guardar la salida de dir en un archivo.
Al ejecutar este comando, la salida de dir se guarda en listado.txt. No se muestra nada en pantalla.
Comprobemos el contenido del archivo guardado.

中小企業経営者のためのRPA入門 RPA導入を成功させる方法

60分でわかる! AIエージェント 超 入門

コマンドラインの黒い画面が怖いんです。

知識・才能ゼロでもらく~に月10万円稼ぐ! よくわかるAI副業超入門
Al usar el operador >, si el archivo especificado ya existe, se sobrescribirá. El contenido existente se perderá.
Agregar la salida estándar a un archivo (>>)
El operador >> agrega contenido al final de un archivo existente.
comando >> nombre_archivo
Ejemplo
Agregar repetidamente a un archivo de registro.
Al usar >>, el nuevo contenido se añade al final del archivo existente.
Guardar la salida de error estándar en un archivo (2>)
El operador 2> guarda los mensajes de error en un archivo.
comando 2> nombre_archivo
Ejemplo
Guardar el error al intentar eliminar un archivo que no existe.
El mensaje de error se guarda en error.txt.
2>> para agregar mensajes de error a un archivo existente. Guardar tanto la salida como los errores en el mismo archivo (2>&1)
Para guardar tanto la salida normal como los mensajes de error en el mismo archivo, usa 2>&1.
comando > nombre_archivo 2>&1
2>&1 significa “fusionar la salida de error estándar (2) con la salida estándar (1).”
comando > archivo.txt 2>&1 guarda tanto stdout como stderr en archivo.txt, pero
comando 2>&1 > archivo.txt no produce el mismo resultado.
Para guardar ambos, siempre especifica primero el destino de stdout y luego escribe 2>&1.
Ejemplo
Esto guarda tanto la salida de dir como cualquier mensaje de error en salida.txt.
Ejemplo en un archivo por lotes
@echo off
setlocal
echo Iniciando proceso...
rem Procesamiento normal (stdout)
echo Procesando archivo
rem Procesamiento que puede producir un error
copy inexistente.txt copia.txt
echo Proceso completo
endlocal
Ejecutando este archivo por lotes y guardando toda la salida en un archivo de registro:
Suprimir la salida (nul)
Para suprimir completamente la salida de un comando, redirige a nul.
nul es un archivo especial: todo lo que se escribe en él se descarta.
comando > nul
Ejemplo
Al ejecutar este comando, no se muestra nada en pantalla.
Suprimir tanto stdout como stderr
comando > nul 2>&1
Este patrón se usa comúnmente en archivos por lotes.
@echo off
setlocal
rem Suprimir completamente la salida del comando
copy ejemplo.txt copia.txt > nul 2>&1
if errorlevel 1 (
echo Error al copiar
) else (
echo Copia completada
)
endlocal
Redirección de entrada (<)
El operador < pasa el contenido de un archivo como entrada a un comando.
comando < nombre_archivo
Ejemplo
Ordenar el contenido de un archivo usando el comando sort.
Ejemplos de código prácticos
Crear un archivo de registro
@echo off
setlocal
set LOGFILE=registro_proceso.txt
rem Inicializar archivo de registro con marca de tiempo
echo ========================================= > %LOGFILE%
echo Inicio: %DATE% %TIME% >> %LOGFILE%
echo ========================================= >> %LOGFILE%
rem Registrar detalles del proceso
echo Directorio actual: %CD% >> %LOGFILE%
echo. >> %LOGFILE%
echo Lista de archivos: >> %LOGFILE%
dir /b >> %LOGFILE% 2>&1
rem Fin
echo. >> %LOGFILE%
echo Fin: %DATE% %TIME% >> %LOGFILE%
echo Archivo de registro creado: %LOGFILE%
endlocal
Separar registros de errores
@echo off
setlocal
rem Guardar stdout y stderr en archivos separados
micomando.exe > exito.log 2> error.log
rem Comprobar si ocurrieron errores
if exist error.log (
for %%A in (error.log) do (
if %%~zA GTR 0 (
echo Se produjeron errores. Consulte error.log.
) else (
echo Completado exitosamente.
)
)
)
endlocal
Preguntas de práctica
Resumen
La redirección es una función muy útil al trabajar en el símbolo del sistema.
Puntos clave:
>: Sobrescribir un archivo con la salida estándar>>: Agregar la salida estándar a un archivo2>: Guardar la salida de error estándar en un archivo2>&1: Fusionar la salida de error con la salida estándar> nul: Suprimir toda la salida<: Leer la entrada desde un archivo
Usando estas funciones, podrás crear archivos de registro, manejar errores y automatizar operaciones con archivos por lotes de manera mucho más eficiente.