Truco Windows: redireccionar la salida de un comando de consola

Os dejo un truco del símbolo de sistema (terminal o consola) para Windows, que puede ser muy útil: la redirección de la salida. Y os explico posibles usos.

Si a un comando de consola, le añades el operador > puedes hacer que en vez de mostrar el resultado en pantalla (por defecto) lo mande a otro lugar. Por ejemplo un fichero de texto o la impresora.

  • Por ejemplo en mi trabajo a veces tengo que monitorizar el router de un cliente o una máquina que salga a internet. Podemos poner el comando ping -t  www.google.es > c:registrodepings.txt
    Esto me guardará un fichero en el disco C: (la ruta la puedes cambiar) con una serie de pings (el -t hace que no pare) o llamadas a google. Esto puedo verlo al día siguiente para ver si han habido cortes.
  • Otro uso es mandar un fichero o listado a la impresora. Por ejemplo dir>prn me manda el listado de un directorio a la impresora.
  • Una tercera utilidad es hacer que no nos muestre la salida de algo en pantalla. Por ejemplo c:test.bat >NUL  No mostrará el resultado del fichero test.bat
  • Y por último podemos producir los resultados por un lado y los errores (salida 2) por otro. Por ejemplo: test.bat > testlog.txt 2> testerrors.txt  crea 2 ficheros, un log del test con la salida y uno de errores con los posibles errores de la misma.
Si además, queremos añadir contenido a un fichero existente podemos hacerlo con la doble redirección. Es decir si hago ping -t www.google.es >> c:registrodepings.txt  al día siguiente, los resultados se añadirán al fichero anterior en vez de crear uno nuevo.

El operador contrario < lo que hace es coger el contenido de un fichero. Por ejemplo sort <lista.txt me produce un resultado ordenado alfabéticamente del fichero lista.txt

Por último el comando |  encadena salidas. Por ejemplo el muy usado dir |more mete la salida de dir en el more (que lo divide en páginas). O comando1 | comando2 mete la salida del 1 en el comando 2.

 

6 comentarios en «Truco Windows: redireccionar la salida de un comando de consola»

  1. Hola, buen día, espero que me ayuden.

    Necesito saber como crear archivos .txt a partir de una sesión telnet que me arroja strings de datos. Yo me conecto a una maquina inspeccionadora que arroja datos por cada articulo inspeccionado, estos registros los tomo desde una sesión de telnet y los guardo a un archivo TXT, pero necesito limitarlos y crear archivos por rango de tiempo para luego crear reportes.

    Espero de su ayuda. Gracias.

    Responder
    • Supongo que es una máquina windows (si es linux hay muchas opciones). Si lo que quieres es rango de tiempos yo crearía un script. El primer comando graba el primero y lo guarda con un nombre. Luego lo corta. El segundo crea otro a otra hora etc. Recuerda cortar el primer fichero porque si no puedes tener 50 archivos a la vez.

      Responder
  2. Hola!

    Mi caso es un poco al contrario…Por defecto mi ordenador exporta la salida de la terminal a un archivo .log. Supongo que hay que cambiar la configuración pero no tengo ni idea de cómo y lo que he encontrado en internet es justamente lo contrario, cómo exportar la información que sale en la ventana de comandos a un archivo.

    Espero haberme explicado.