Capítulo 8
Redireccionamientos

 

Índice · Capítulo 7 · Capítulo 9 · Publicaciones · Saulo.Net

8-1 Introducción

Para comprender mejor el significado del redireccionamiento, intente responder primeramente las siguientes preguntas.

  1. Cuando el ordenador solicita información, ¿qué dispositivo utiliza para recibirla?
  2. Cuando el ordenador necesita presentar información, ¿qué dispositivo emplea?

Las respuestas correctas son el teclado y el monitor respectivamente. En este capítulo aprenderemos a redirigir (cambiar) las entradas y salidas de las órdenes del ms-dos. El siguiente cuadro presenta la entrada y la salida por defecto de las órdenes del dos.

 

Función Dispositivo
Entrada por defecto

CON (teclado)

Salida por defecto CON (monitor)

 

Índice · Arriba · Publicaciones · Saulo.Net

8-2 Los operadores

Para variar la entrada de una orden, la salida o ambas, se utilizan los operadores de redireccionamiento. Son cuatro:

 
Operador Descripción Sintaxis
< Redirección de la entrada

orden <fichero/dispositivo

> Redirección de la salida orden >fichero/dispositivo
>> Redirección de la salida a un fichero existente orden >>fichero
| Redirección de la salida de una orden a entrada de otra orden orden1 |orden2

 

Índice · Arriba · Publicaciones · Saulo.Net

8-3 Los filtros del DOS

Los filtros del dos son las órdenes More, Sort y Find. Estas tres órdenes externas se denominan filtros porque su misión es recibir una entrada, filtrarla y devolver una salida.

 

More

Recibe como entrada un conjunto de caracteres organizados en filas y devuelve los mismos caracteres insertando una pausa cada 23 líneas.

En muchas ocasiones la información mostrada por una orden o el contenido de un fichero no cabe en una sola pantalla y los datos se desplazan a gran velocidad sin darnos tiempo a leerlos. La utilidad de la orden More se encuentra en estas ocasiones, deteniendo el desplazamiento de información en cada pantalla. Entonces, More muestra la siguiente línea:

-- Más --

Después de leer los datos en pantalla, podemos pulsar Enter para continuar o también Ctrl+Pausa para interrumpir.

 

Sort

Recibe como entrada un conjunto de caracteres organizados en filas y devuelve los mismos caracteres ordenando cada fila alfabéticamente.

El uso más frecuente de este filtro es ordenar alfabéticamente el contenido de un fichero. Admite dos modificadores:

 
Modificador Descripción
/R Ordena inversamente (de la `Z' a la `A' y del `9' al `0')
/+columna Indica la columna del carácter a partir del cual se comparará cada fila.

 

Find

Recibe como entrada un conjunto de caracteres organizados en filas y devuelve las filas que contengan una cadena determinada.

La cadena de caracteres para buscar debe especificarse entre comillas (Mays+2) después de la orden.

Se utiliza, a menudo, para buscar una cadena de caracteres en un fichero o en la salida de una orden. El filtro Find distingue entre mayúsculas y minúsculas mientras no le especifiquemos el modificador /I entre la orden y la cadena.

FIND "cadena" (cadena es diferente que CADENA)
FIND /I "cadena"
(cadena es lo mismo que CADENA)

 

Índice · Arriba · Publicaciones · Saulo.Net

8-4 Redirección de la entrada. Operador `<'

Cómo hemos dicho al principio del capítulo, las órdenes del dos solicitan información a través del teclado. Con este operador hacemos que la información de entrada proceda desde un fichero o un dispositivo.

Aplicaciones:

A:\>more <recuerdo.txt
(More toma como entrada el fichero RECUERDO.TXT y como salida, el monitor)

A:\>sort <personal.txt
(Sort toma como entrada el fichero PERSONAL.TXT y como salida, el monitor)

A:\>sort /+40 <personal.txt

A:\>find "JIMENEZ" <personal.txt
(Find considera como entrada el fichero PERSONAL.TXT y muestra por pantalla todas las filas que contienen la cadena «JIMENEZ»)

 

Ejercicios de autocomprobación

  1. Indique las órdenes necesarias para:

a) Mostrar el fichero CRONICA.TXT con pausa en cada pantalla.
b)
Mostrar el fichero AVISO.TXT con pausa en cada pantalla.
c)
Ordenar el fichero NUMEROS.TXT alfabéticamente.
d)
Ordenar el fichero LISTIN.TXT alfabéticamente a partir de la columna 30.
e)
Ordenar el fichero AMIGOS.TXT inversamente.
f)
  Buscar la cadena "IGNACIO" en el fichero PERSONAL.TXT

  1. Si no utilizamos el operador `<', ¿cuál es el dispositivo de entrada por defecto?

 

Índice · Arriba · Publicaciones · Saulo.Net

8-5 Redirección de la salida. Operador `>'

Con este operador dirigimos la salida desde la pantalla a un fichero o dispositivo.

Suele tener dos usos principales:

  1. Enviar la salida de una orden a la impresora.

A:\>type romance.txt >prn
(imprime el fichero ROMANCE.TXT en impresora)

C:\>vol >prn
(imprime la etiqueta y el número de serie en impresora)

  1. Enviar la salida de una orden a un nuevo fichero. Si el fichero existe, se pierde su contenido anterior.

C:\>dir >director.txt
(crea el fichero DIRECTOR.TXT con el directorio raíz de C:)

C:\>ver >version.txt
(crea el fichero VERSION.TXT conteniendo la versión actual de ms-dos)


El operador `>' también se puede combinar con los filtros del dos. Veamos algunas aplicaciones:

B:\>sort >amigos.txt
(Sort asume como entrada el teclado y como salida el fichero AMIGOS.TXT)

B:\>sort <listin1.txt >listin2.txt
(Sort asume como entrada el fichero LISTIN1.TXT y como salida, el fichero LISTIN2.TXT)

B:\>sort <listin1.txt >prn
(Sort toma como entrada el fichero LISTIN1.TXT y como salida, la impresora)

B:\>find "CONTABLE" <personal.txt >contable.txt

 

Ejercicios de autocomprobación

  1. Indique la entrada y la salida de las siguientes líneas de órdenes.

a) DATE <DIA.TXT
b)
TIME <HORA.TXT
c)
TYPE ROMANCE.TXT
d)
TYPE ROMANCE.TXT >CON
e)
DIR >DIRECTOR.TXT
f)
DIR >PRN
g)
SORT
h)
SORT <DESORDEN.TXT
i)
SORT <DESORDEN.TXT >ORDEN.TXT
j)
SORT <DESORDEN.TXT >PRN
k)
FIND "HARINA" <COMPRA.TXT
l)
FIND "HARINA" <COMPRA.TXT >HARINA.TXT
m)
MORE <AVISO.TXT

 

Índice · Arriba · Publicaciones · Saulo.Net

8-6 Redirección de la salida a un fichero existente `>>'

Se utiliza para dirigir la salida de una orden a un fichero existente. Al contrario que el operador `>', el operador de adicción `>>' no sobrescribe sino añade al fichero existente.

La siguiente orden añade al fichero SOS.TXT la ayuda de la orden Time. Si no existe, se crea el fichero.

A:\>time /? >>sos.txt

La siguiente añade al fichero SOS.TXT la ayuda suministrada por ms-dos para la orden Date.

A:\>date /? >>sos.txt

Si ahora visualizamos el fichero SOS.TXT, comprobamos que contiene la ayuda de ambas órdenes.

A:\>type sos.txt
Muestra o establece la hora del sistema.

TIME [hora]

Escriba TIME sin parámetros para consultar o cambiar la hora actual.
Presione ENTRAR para conservar la misma hora.
Presenta o establece la fecha.

DATE [dd-mm-aa]

dd-mm-aa Establece la fecha que se especifique.

Escriba DATE sin parámetros para ver la fecha actual y poder escribir una nueva.

Presione ENTRAR para conservar la misma fecha.

D:\>

 

Ejercicios de autocomprobación

  1. Escribir las órdenes necesarias para:

a) Mostrar el fichero INFORME.TXT con pausa en cada pantalla.
b)
Imprimir el fichero INFORME.TXT en la impresora.
c)
Ordenar el texto introducido por el teclado en la impresora.
d)
Añadir la etiqueta y el número de serie de la unidad actual (orden Vol) al fichero VARIOS.TXT
e)
Añadir el directorio actual al fichero VARIOS.TXT

 

Índice · Arriba · Publicaciones · Saulo.Net

8-7 Redirección de la salida a entrada de otra orden ( | )

El uso del operador `|' guarda la siguiente sintaxis:

orden1 |orden2

Nota: El símbolo de tubería o símbolo de canalización `|' se obtiene pulsando AltGr+1.

La lectura de esta sintaxis es: "tomar la salida de orden1 como entrada de orden2".

Cada vez que utilizamos el símbolo tubería, ms-dos necesita crear un fichero temporal. Para ello utiliza la variable de entorno TEMP. Si esta variable no está bien definida, puede ocurrir algún error.

Aplicaciones:

B:\>type informe.txt |more

C:\DOS>dir |more

C:\>tree |more

C:\>dir |find "bytes libres"
                                                  20.443.136 bytes libres
(muestra los bytes libres de la unidad C:)

TEMP=C:\DOS
(muestra el valor de la variable TEMP o nada si no existe)

 

Ejercicios de autocomprobación

  1. Entre las siguientes líneas de órdenes, agrupar por parejas las que hagan lo mismo.

a) COPY EJEMPLO.TXT PRN
b)
TYPE EJEMPLO.TXT |MORE
c)
TYPE EJEMPLO.TXT >PRN
d)
COPY EJEMPLO.TXT CON
e)
DIR /P
f)
MORE <EJEMPLO.TXT
g)
TYPE EJEMPLO.TXT
h)
DIR |MORE

 

Índice · Arriba · Publicaciones · Saulo.Net

Clave de los ejercicios de autocomprobación


  1. a) MORE <CRONICA.TXT
    b)
    MORE <AVISO.TXT
    c)
    SORT <NUMEROS.TXT
    d)
    SORT /+30 <LISTIN.TXT
    e)
    SORT /R <AMIGOS.TXT
    f)
    FIND "IGNACIO" <PERSONAL.TXT
     
  2. El teclado es el dispositivo de entrada por defecto.
     
  3. a) DIA.TXT monitor
    b)
    HORA.TXT monitor
    c)
    (teclado) monitor
    d)
    (teclado) monitor
    e)
    (teclado) DIRECTOR.TXT
    f)
    (teclado) impresora
    g)
    teclado monitor
    h)
    DESORDEN.TXT monitor
    i)
    DESORDEN.TXT ORDEN.TXT
    j)
    DESORDEN.TXT impresora
    k)
    COMPRA.TXT monitor
    l)
    COMPRA.TXT HARINA.TXT
    m)
    AVISO.TXT monitor
     
  4. a) MORE <INFORME.TXT
    b)
    TYPE INFORME.TXT >PRN
    c)
    SORT >PRN
    d)
    VOL >>VARIOS.TXT
    e)
    DIR >>VARIOS.TXT
     
  5. a) y c) Imprimir EJEMPLO.TXT
    b)
    y f) Mostrar con pausa en cada pantalla EJEMPLO.TXT
    d)
    y g) Visualizar EJEMPLO.TXT
    e)
    y h) Mostrar el directorio actual con pausa en cada pantalla.

 

Índice · Arriba · Publicaciones · Saulo.Net

Puesta en práctica


Vamos a seguir los siguientes pasos:

  1. Crear un fichero llamado AMIGOS1.TXT que contenga los siguientes datos. (Las dos primeras líneas no debe crearlas en el fichero: están para introducir las columnas correctamente).

     0        10        20        30        40
     12345678901234567890123456789012345678901234567

     Ismael     Caballero     Valladolid     7986821
     María      López         Córdoba        4568756
     Sonia      Aguilar       Valladolid     1239083
     Juan       Ramírez       Córdoba        7643434
     Laura      Díaz          Córdoba        4221336
     Enrique    Ortiz         Burgos         3423444
     Mónica     Carrasco      Madrid         1234123
     Cristina   Reyes         Madrid         3344334

  1. Conocer todos los amigos de Córdoba.
  2. Conocer el número de teléfono de Cristina.
  3. Ordenar alfabéticamente el fichero basándonos en la ciudad.
  4. Ordenar alfabéticamente el fichero basándonos en el apellido.
  5. Crear otro fichero llamado AMIGOS2.TXT que contenga lo siguiente:

     0        10        20        30        40
     12345678901234567890123456789012345678901234567
    
Antonio    López         Alicante       8344621
     Juan       Moreno        Alicante       4352359

  1. Unir ambos ficheros en un tercero llamado AMIGOS3.TXT
  2. Ordenar alfabéticamente AMIGOS3.TXT por el nombre y escribir el resultado en un nuevo fichero llamado AMIGOS4.TXT.
  3. Visualizar por pantalla AMIGOS4.TXT. Si tiene impresora, imprímalo.
  4. Borrar los cuatro ficheros creados.


Resolución en el ordenador:

A:\>copy con amigos1.txt
Ismael     Caballero     Valladolid     7986821
María      López         Córdoba        4568756
Sonia      Aguilar       Valladolid     1239083
Juan       Ramírez       Córdoba        7643434
Laura      Díaz          Córdoba        4221336
Enrique    Ortiz         Burgos         3423444
Mónica     Carrasco      Madrid         1234123
Cristina   Reyes         Madrid         3344334

^Z
                1 archivo(s) copiado(s)

A:\>find "Córdoba" <amigos1.txt
María      López         Córdoba        4568756
Juan       Ramírez       Córdoba        7643434
Laura      Díaz          Córdoba        4221336

A:\>find "Cristina" <amigos1.txt
Cristina   Reyes         Madrid         3344334

A:\>sort /+26 <amigos1.txt
Enrique    Ortiz         Burgos         3423444
Laura      Díaz          Córdoba        4221336
María      López         Córdoba        4568756
Juan       Ramírez       Córdoba        7643434
Mónica     Carrasco      Madrid         1234123
Cristina   Reyes         Madrid         3344334

Sonia      Aguilar       Valladolid     1239083
Ismael     Caballero     Valladolid     7986821

A:\>sort /+12 <amigos1.txt
Sonia      Aguilar       Valladolid     1239083
Ismael     Caballero     Valladolid     7986821
Mónica     Carrasco      Madrid         1234123
Laura      Díaz          Córdoba        4221336
María      López         Córdoba        4568756
Enrique    Ortiz         Burgos         3423444
Juan       Ramírez       Córdoba        7643434
Cristina   Reyes         Madrid         3344334


A:\>
copy con amigos2.txt
Antonio    López         Alicante       8344621
Juan       Moreno        Alicante       4352359
^Z
                1 archivo(s) copiado(s)

A:\>type amigos1.txt >amigos3.txt

A:\>type amigos2.txt >>amigos3.txt

A:\>type amigos3.txt

Ismael     Caballero     Valladolid     7986821
María      López         Córdoba        4568756
Sonia      Aguilar       Valladolid     1239083
Juan       Ramírez       Córdoba        7643434
Laura      Díaz          Córdoba        4221336
Enrique    Ortiz         Burgos         3423444
Mónica     Carrasco      Madrid         1234123
Cristina   Reyes         Madrid         3344334

Antonio    López         Alicante       8344621
Juan       Moreno        Alicante       4352359

A:\>sort <amigos3.txt >amigos4.txt

A:\>type amigos4.txt

Antonio    López         Alicante       8344621
Cristina   Reyes         Madrid         3344334
Enrique    Ortiz         Burgos         3423444
Ismael     Caballero     Valladolid     7986821
Juan       Moreno        Alicante       4352359
Juan       Ramírez       Córdoba        7643434
Laura      Díaz          Córdoba        4221336
María      López         Córdoba        4568756
Mónica     Carrasco      Madrid         1234123
Sonia      Aguilar       Valladolid     1239083

A:\>del amigos?.txt

A:\>

 

Índice · Arriba · Capítulo 9 · Publicaciones · Saulo.Net