Sunteți pe pagina 1din 26

10-1 Introduccin

En muchas ocasiones los usuarios de ms-dos repiten una determinada secuencia de rdenes da tras
da, suponiendo una tarea bastante molesta e incmoda. Los ficheros por lotes pretenden
automatizar una tarea rutinaria ejecutando una serie de rdenes definidas con antelacin.
En este captulo aprenderemos aquellas herramientas necesarias para crear un fichero por lotes. En
el captulo siguiente, se exponen y estudian tiles ejemplos que abarcan la totalidad del temario
estudiado.

10-2 Concepto de fichero por lotes


Un fichero por lotes es un fichero ASCII
que contiene una serie de rdenes
Como ejemplo, vamos a crear un fichero por lotes llamado TIEMPO.BAT. Para su confeccin
podemos utilizar la orden Copy o el programa Edit.
C:\BATH>copy con tiempo.bat
date
time
^Z
1 archivo(s) copiado(s)
Si ahora ejecutamos el fichero recin creado, vemos como entran en funcionamiento las rdenes
Date y Time.
C:\BATH>tiempo
C:\BATH>date
La fecha actual es Mar 15/08/1995
Escriba la nueva fecha (dd-mm-aa):
C:\BATH>time
La hora actual es 0:53:54,12
Escriba la nueva hora:
C:\BATH>
Todos los ficheros por lotes poseen unas caractersticas comunes:
Extensin. Todos deben llevar obligatoriamente la extensin BAT.
Contenido. Son ficheros de texto ASCII y, por consiguiente, pueden ser creados por Copy o
Edit. Cada lnea del fichero debe poseer una orden.
Ejecucin. Para hacerlo funcionar simplemente debemos teclear su nombre a continuacin
del smbolo del sistema. El fichero por lotes tomar entonces el control del ordenador.
Interrupcin. Podemos detener el procesamiento del fichero por lotes en cualquier
momento presionando Ctrl+Pausa.
Todas las rdenes admitidas despus del smbolo del sistema pueden introducirse tambin en un
fichero por lotes. Adems, existen una serie de rdenes diseadas especficamente para estos
ficheros:
Orden
Echo
Rem
Pause
Goto
If
Choice
For
Call

Breve descripcin
Controla el eco de las rdenes y visualiza mensajes.
Introduce comentarios.
Detiene temporalmente el desarrollo de un programa.
Desva incondicionalmente el desarrollo de un programa.
Desva condicionalmente el desarrollo de un programa.
Permite elegir entre unas opciones establecidas.
Repite una misma orden en un conjunto de ficheros.
Llama a un fichero por lotes desde otro.

Shift

Desplaza el valor de los parmetros.

La siguiente tabla muestra aquellos smbolos empleados exclusivamente en los ficheros por lotes:
Smbolo
:etiqueta
%nmero
%variable%
%%variable

Significado
Nombre de una etiqueta.
Parmetro del fichero por lotes.
Variable del entorno.
Variable de la orden For.

10-3 La orden ECHO


Se puede utilizar de cinco formas:
ECHO
Indica si est activado o desactivado el eco de las rdenes.
ECHO ON
Activa el eco
ECHO OFF
Desactiva el eco
ECHO
Visualiza un mensaje en pantalla.
mensaje
ECHO.
Visualiza una lnea en blanco en pantalla.
El eco de una orden es el propio nombre de aquella escrito en la pantalla. Al poner en marcha el
fichero anterior, observar como aparece el nombre de cada orden en pantalla antes de ejecutarse.
Al fichero del ejemplo podemos aadirle la lnea ECHO OFF para desactivar el eco en lo sucesivo.
Para eliminar el eco de la propia orden ECHO OFF se antepone el smbolo arroba (@) al nombre
de la orden. Vemoslo ms claro en los ejemplos siguientes.
Programa:
echo off
date
time
Ejecucin:
C:\BATH>tiempo
C:\BATH>echo off
La fecha actual es Mar 15/08/1995
Escriba la nueva fecha (dd-mm-aa):
La hora actual es 0:53:54,12
Escriba la nueva hora:
Programa:
@echo off
date
time
Ejecucin:
C:\BATH>tiempo
La fecha actual es Mar 15/08/1995
Escriba la nueva fecha (dd-mm-aa):
La hora actual es 0:53:54,12
Escriba la nueva hora:
La orden Echo tambin permite mostrar mensajes al usuario del fichero. En el siguiente ejemplo se
ha introducido el mensaje "Este es el fichero TIEMPO.BAT":
Programa:
@echo off
echo Este es el fichero TIEMPO.BAT
date
time

Ejecucin:
C:\BATH>tiempo
Este es el fichero TIEMPO.BAT
La fecha actual es Mar 15/08/1995
Escriba la nueva fecha (dd-mm-aa):
La hora actual es 1:10:22,72
Escriba la nueva hora:

10-4 La orden REM


Permite introducir comentarios internos en el cdigo de un fichero por lotes. Las lneas precedidas
por la palabra Rem sern ignoradas durante el funcionamiento del fichero por lotes. Se suele utilizar
esta orden para introducir aclaraciones en el cdigo del fichero. Objetivo: facilitar su lectura y
correccin de errores.
@echo off
rem Programa: TIEMPO.BAT
rem Cometido: Mostrar al usuario la fecha y la hora del
rem sistema y ofrecerle la oportunidad de modificarla.
date
time
Ejercicios de autocomprobacin
1. Indique la diferencia entre las siguientes rdenes:
ECHO Ficheros por lotes
REM Ficheros por lotes

10-5 Gestin de parmetros


Los parmetros son informaciones adicionales colocadas detrs del nombre de una orden. Si la
mayora de las rdenes de ms-dos admiten parmetros, tambin ser posible gestionar parmetros
en los ficheros por lotes.
Vamos a confeccionar un fichero por lotes que borre dos ficheros introducidos como parmetros.
Programa:
@echo off
rem Programa: BORRA2.BAT
del %1
del %2
Ejecucin:
A:\>borra2 juan.txt maria.txt
En la lnea de rdenes, cada parmetro debe estar separado con un espacio en blanco del anterior.
De la forma anteriormente explicada podemos gestionar hasta nueve de ellos (del %1 al %9).
Para referirnos a un parmetro introducido en la lnea de rdenes del programa, debemos escribir el
signo de porcentaje (%) seguido del nmero de parmetro.
El siguiente ejemplo copia los ficheros introducidos como parmetros al disquete de la unidad B:
Programa:
@echo off
rem Programa: COPIAB.BAT
echo Se estn copiando los ficheros %1, %2 y %3 a la unidad B:
copy %1 b:\
copy %2 b:\
copy %3 b:\
Ejecucin:
A:\>copiab juan.bak alberto.bmp marta.dbf

10-6 La orden PAUSE


Detiene temporalmente el desarrollo de un programa. Cuando el dos encuentra una orden Pause en
un fichero por lotes visualiza un mensaje en pantalla y espera una tecla para proseguir. Tambin
podemos presionar Ctrl+Pausa y as, interrumpir el desarrollo del fichero.
Presione cualquier tecla para continuar . . .
Para mejorar la presentacin, podemos insertar un mensaje indicando el motivo de la detencin del
programa gracias a la orden Echo:
echo Inserte un disquete en la unidad B:
pause
Si no deseamos ver el mensaje de Pause, podemos redireccionarlo al dispositivo ficticio NUL.
echo Inserte un disquete en B: y pulse Enter
pause >nul
Ejercicios de autocomprobacin
2. Qu hace la orden PAUSE >NUL ?
3. Escriba un fichero de procesamiento por lotes que pida un disco en la unidad A: antes de
mostrar su directorio raz.

10-7 La orden GOTO


Normalmente un fichero por lotes se desarrolla secuencialmente, desde la primera lnea hasta la
ltima. Sin embargo, la orden Goto permite desviar la ejecucin del programa hasta una etiqueta
especificada como parmetro.
GOTO [:]etiqueta
Las etiquetas deben ir precedidas de dos puntos (:) para diferenciarse de las
rdenes. Admiten hasta ocho caracteres significativos. Esto ltimo significa que la etiqueta
`BALANCE_DE_AGOSTO' es idntica a `BALANCE_DE_ENERO'.
El siguiente ejemplo muestra cmo se usan las etiquetas:
Programa:
@echo off
ver
goto Final
vol
:Final
Ejecucin:
Versin MS-DOS 6.22
En este ejemplo, la orden Vol nunca se ejecutar: al llegar la orden GOTO FINAL, ms-dos salta
hasta la etiqueta :Final y termina el fichero porque no hay ms lneas.
Vamos a crear un programa para copiar varios disquetes desde la unidad A: al directorio actual.
@echo off
rem Programa: DEMO.BAT
echo ********************************************
echo ** Este programa copia todos los ficheros **
echo ** de la unidad A: al directorio actual **
echo ********************************************
pause
:Proceso
copy a:\ .
echo Introduzca el siguiente disquete en A: y pulse Enter
pause >nul
goto Proceso
En primer lugar el programa muestra en pantalla su cometido y as, el usuario decide entre
continuar (Enter) o abandonar (Ctrl+Pausa). Si pulsa Enter se copian todos los ficheros del
directorio raz de A: en el directorio actual.

Luego, se ofrece la posibilidad de introducir otro disquete. Si pulsamos Enter se ejecuta la orden
GOTO PROCESO, desviando la ejecucin del programa hasta la etiqueta :Proceso. En cambio, si
pulsamos Ctrl+Pausa el programa finaliza, apareciendo el smbolo del sistema.
Ejercicios de autocomprobacin
4. Qu hace el siguiente fichero por lotes?
@echo off
dir c:\
goto etiqueta2
:etiqueta1
ver
:etiqueta2

10-8 La orden IF
Desva condicionalmente el proceso de ejecucin de un fichero por lotes. Admite 6 sintaxis
diferentes:
IF EXIST fichero orden
IF NOT EXIST fichero
orden
IF cadena1==cadena2
orden
IF NOT
cadena1==cadena2 orden
IF ERRORLEVEL
nmero orden
IF NOT ERRORLEVEL
nmero orden

Si existe el fichero se ejecuta la orden.


Si no existe el fichero se ejecuta la orden.
Si ambas cadenas son iguales se ejecuta la orden.
Si ambas cadenas son diferentes se ejecuta la orden.
Si el cdigo de salida del ltimo programa es igual o superior al nmero,
se ejecuta la orden.
Si el cdigo de salida del ltimo programa es inferior al nmero,
se ejecuta la orden.

IF EXIST
Un programador debe considerar todas y cada una de las situaciones posibles al ejecutarse su
programa y, por tanto, debe evitar la aparicin de mensajes de error inesperados en la pantalla.
Suponga el siguiente fichero por lotes:
@echo off
del %1
Si ahora lo hacemos funcionar introduciendo como parmetro un fichero inexistente, el ms-dos
tomar el control y dar su correspondiente mensaje de error. Este fichero resulta ms correcto si
contiene las siguientes lneas:
@echo off
if not exist %1 echo Es imposible borrar un fichero que no existe!
if exist %1 del %1
De esta forma, la orden Del slo funciona si el fichero existe.
IF cadena1==cadena2
Encuentra su utilidad al trabajar con parmetros en un fichero por lotes.
En el fichero BORRA2.BAT hemos supuesto que el usuario siempre introduce dos parmetros. Sin
embargo, se producir un error si el usuario slo introduce uno de ellos: la orden DEL %2 quedar
transformada en DEL a secas y como Del no funciona sin parmetros, ms-dos mostrar una
advertencia. Este problema se soluciona con lo siguiente:
@echo off
rem Programa: BORRA2B.BAT
if "%1"=="" echo Debe introducir uno o dos ficheros como parmetros.
if not "%1"=="" del %1
if not "%2"=="" del %2

La primera lnea If avisa si no se ha introducido ningn parmetro. La segunda lnea nicamente


borrar el primer parmetro si se ha introducido. La tercera lnea hace lo mismo pero con el
segundo parmetro.
IF ERRORLEVEL
Cada orden externa de ms-dos genera un cdigo de salida a su trmino indicando si pudo realizarse
satisfactoriamente.
Generalmente un cdigo de salida 0 indica que no hubo ningn problema y un cdigo de salida
superior hace referencia a diferentes errores.
Muchos ficheros por lotes necesitan saber si la orden anterior cumpli su cometido correctamente:
para ello utilizan la orden If errorlevel.
Es muy importante recordar que la orden se ejecutar si el cdigo de salida es igual o superior al
especificado detrs de ERRORLEVEL.
A modo de ejemplo tenemos a continuacin los cdigos de salida de Xcopy:
Cdigo
0
1
2
4

Significado
Los ficheros fueron copiados sin error.
No se encontraron ficheros para copiar.
El usuario presion Ctrl+Pausa para suspender el proceso de Xcopy.
Ocurri un error de inicio. No hay suficiente memoria o espacio en el disco, se
introdujo un nombre de unidad no vlida o se utiliz una sintaxis incorrecta en la
lnea de rdenes.
Ocurri un error de escritura de disco.

Vamos a crear un fichero por lotes para copiar los ficheros de la unidad A: a la B: e informe del
resultado de la copia.
@echo off
rem Programa: COPIA-AB.BAT
xcopy a:\ b:\
if errorlevel 1 goto Error
if errorlevel 0 echo La copia fue correcta!
goto Final
:Error
echo Se produjo un error durante la copia
:Final
En primer lugar, Xcopy intenta realizar la copia de ficheros y devolver un cdigo de salida. Si se
ha producido algn error el cdigo ser 1 o superior y entonces, el programa se desva hasta la
etiqueta :Error, muestra el mensaje y finaliza. Si la copia fue satisfactoria, el cdigo de salida es 0.
La segunda lnea If mostrar el mensaje de xito, saltando despus a la etiqueta :Final y como no
hay ms lneas, termina el proceso.
En muchas ocasiones puede ser fuente de complicaciones que If errorlevel nmero se cumpla si el
nmero es igual o mayor. Para cumplirse exclusivamente si el cdigo de salida es 5 -por ejemplopodemos usar lo siguiente:
if errorlevel 5 if not errorlevel 6 dir
Esta compleja lnea se traduce as: Si el cdigo de salida es 5 o superior pero inferior a 6 ejecutar
Dir, es decir, si el cdigo es 5 ejecutar Dir.

10-9 La orden CHOICE


Permite escoger una opcin entre varias y, dependiendo de la opcin elegida, devuelve un cdigo
de salida.
Su sintaxis es:
CHOICE [mensaje] [/C:opciones] [/N] [/S] [/T:opcin,segundos]
/C:opciones

Especifica las opciones posibles. Si el usuario pulsa la primera de las opciones,


Choice devolver un cdigo de salida 1; si pulsa la segunda opcin, Choice
devuelve el cdigo 2 y as sucesivamente. Si no se especifica este parmetro se
asumen las opciones por defecto (SN).
/N
No muestra las opciones admitidas detrs del mensaje.
/S
Hace distincin entre maysculas y minsculas. Si no se especifica este parmetro
se toman como la misma opcin.
/T:opcin,segs Toma la opcin indicada si no se pulsa ninguna otra tecla en los segundos
especificados.
mensaje
Contiene el mensaje mostrado al usuario pidiendo que introduzca una de las
opciones admitidas.
El programa DEMO.BAT podemos mejorarlo sensiblemente si cambiamos las rdenes Pause por
rdenes Choice.
@echo off
rem Programa: DEMOB.BAT
echo ********************************************
echo ** Este programa copia todos los ficheros **
echo ** de la unidad A: al directorio actual **
echo ********************************************
choice Desea continuar?
if errorlevel 2 goto Final
:Proceso
copy a:\ .
choice Para continuar con otro disquete pulse C y para finalizar, F /C:FC
if errorlevel 2 goto proceso
:Final
En la primera orden Choice se toman las opciones por defecto S y N. `S' corresponde a un cdigo
de salida 1 y `N' a un cdigo 2. En la segunda orden Choice se toman las opciones F y C. `F'
corresponde a un cdigo 1 y `C' a un cdigo 2.
Con la orden Choice y de una forma muy sencilla podemos crear mens con diferentes opciones:
@echo off
rem Programa: UTIL.BAT
:Menu
cls
echo UTILIDADES DE MS-DOS
echo -------------------echo.
echo A. Anti-Virus
echo B. Backup
echo D. Defragmentar
echo E. Editor
echo S. Salir
echo.
choice Qu utilidad desea comenzar? /c:abdes /n /t:s,15
if errorlevel 5 goto Salir

if errorlevel 4 goto Editor


if errorlevel 3 goto Defrag
if errorlevel 2 goto Backup
if errorlevel 1 goto Anti
if errorlevel 0 goto Menu
:Anti
MSAV
goto Menu
:Backup
MSBACKUP
goto Menu
:Defrag
DEFRAG
goto Menu
:Editor
EDIT
goto Menu
:Salir
echo.
Observe la orden Choice: el modificador /C indica las opciones admitidas. Si se pulsa la `A' se
generar un cdigo de salida 1 y as sucesivamente hasta la `S' que corresponde a un cdigo 5.
Gracias al modificador /N Choice no muestra las teclas admitidas detrs del mensaje. El
modificador /T toma como opcin por defecto la `S' si pasan 15 segundos sin pulsar ninguna tecla.
Observe, asimismo, cmo se ha comenzado en las lneas If por el errorlevel ms alto: as se evitan
conflictos. El cdigo de salida 0 se obtiene si el usuario responde con Ctrl+Pausa al mensaje de
Choice.
Ejercicios de autocomprobacin
5. Escriba un fichero de procesamiento por lotes para borrar el fichero introducido como
parmetro. El programa debe comprobar previamente si se ha introducido algn parmetro y
si el fichero existe.
6. Para qu devuelven un cdigo de salida las rdenes externas?
7. Escriba un fichero por lotes que nos pregunte si deseamos ver el directorio de A: o el de B:

10-10 Las variables del entorno


Se puede recuperar el valor de una determinada variable del entorno introduciendo sta entre
signos de porcentajes (%NombreVariable%).
Ejemplo:
Echo El valor de la variable PATH es %PATH%
Echo El valor de la variable PROMPT es %PROMPT%
El siguiente ejemplo da el valor C:\DOS a la variable TEMP si no ha sido definida:
if "%TEMP%"=="" set TEMP=C:\DOS

10-11 Otras rdenes


Existen otras tres rdenes ms diseadas para su uso en ficheros por lotes. Como estas rdenes
tienen un menor uso, se exponen resumidamente a continuacin.
La orden FOR
Su sintaxis es:
FOR %%variable IN (conjunto) DO orden
Esta orden repite la orden especificada para cada valor del conjunto. Conjunto es una lista de
nombres de ficheros. En ella, se pueden establecer varios nombres separados por espacios y
tambin, utilizar comodines.

Ejemplo
for %%I in (juan.txt maria.txt *.dat) do type %%i
La variable %%I va tomando cada uno de los valores del conjunto y se los enva a la orden Type.
En este ejemplo se visualizan en pantalla los ficheros JUAN.TXT, MARIA.TXT y todos los que
tengan extensin DAT.
La orden SHIFT
Se traduce al espaol por desplazamiento. Mueve el valor de cada parmetro a la variable anterior.
Por ejemplo, si existen 3 parmetros (%1, %2 y %3) y se utiliza la orden Shift, el valor de %1 lo
tomar %0, el valor de %2 lo tomar %1 y el valor de %3 lo tomar %2.
Programa:
@echo off
rem Programa: DEMO2.BAT
echo El parmetro 1 es %1
shift
echo El parmetro 2 es %1
shift
echo El parmetro 3 es %1
Ejecucin:
C:\BATH>demo2 juan maria alberto
El parmetro 1 es juan
El parmetro 2 es maria
El parmetro 3 es alberto
C:\BATH>
La orden CALL
Se utiliza para llamar a un fichero por lotes desde el interior de otro. Su sintaxis es:
CALL fichero [ParmetrosDelFichero]
En el siguiente ejemplo, el fichero PRG1.BAT llama a PRG2.BAT. Cuando la ejecucin de
PRG2.BAT termina, continua PRG1.BAT en la siguiente lnea a Call.
Programa PRG1.BAT:
@echo off
echo lnea 1
call prg2.bat
echo lnea 4
echo lnea 5
Programa PRG2.BAT:
@echo off
echo lnea 2
echo lnea 3
Ejecucin:
C:\BATH>prg1
lnea 1
lnea 2
lnea 3
lnea 4
lnea 5
C:\BATH>

Clave de los ejercicios de autocomprobacin


1. La lnea ECHO muestra el mensaje "Ficheros por lotes" en pantalla y la lnea REM es
ignorada al funcionar el programa.
2. Espera la pulsacin de una tecla. Como la salida de Pause est redireccionada al dispositivo
nulo, no se mostrar ningn mensaje en la pantalla.
3.
@echo off
Echo Introduzca un disquete en la unidad A:
Pause
dir a:\
4. Muestra el directorio raz de la unidad C: y luego la versin del sistema operativo. Como el
nombre de las etiquetas slo admite ocho caracteres significativos la orden GOTO
ETIQUETA2 llevar a la primera etiqueta empezada por ETIQUETA, en este caso
ETIQUETA1.
5.
@echo off
if "%1"=="" goto Error1
if not exist %1 goto Error2
del %1
echo El fichero %1 se ha borrado
goto Final
:Error1
echo Debe especificar un fichero
goto Final
:Error2
echo El fichero %1 no existe
:Final
echo.
6. Las rdenes externas devuelven un cdigo de salida para ser utilizado en los ficheros por
lotes. Posteriormente se podr evaluar este cdigo gracias a la orden If errorlevel.
7.
@echo off
echo A. Ver el directorio de A:
echo B. Ver el directorio de B:
choice Elija opcin /c:ab
if errorlevel 1 if not errorlevel 2 dir a:\
if errorlevel 2 if not errorlevel 3 dir b:\

11-1 Introduccin
Este captulo est dedicado a la explicacin de varios ejemplos de ficheros por lotes. Este es un
captulo avanzado, pues comprende prcticamente toda la materia estudiada durante el curso.
Posiblemente necesite volver atrs en ms de una ocasin.
Normalmente los ficheros por lotes comprenden una serie de tareas que son tiles desde cualquier
directorio. Lo ms normal es crear un directorio dedicado exclusivamente a los ficheros por lotes:
en los ejemplos explicados se asume el directorio C:\BATH. Adems, debemos introducir el
directorio elegido en la ruta de acceso (variable PATH). De esta forma podemos ejecutar cualquier
fichero por lotes desde cualquier directorio del ordenador.
Como las demostraciones estudiadas a lo largo del captulo son relativamente largas, se recomienda
utilizar el Editor del ms-dos para la creacin y su posterior edicin.
El primer fichero objeto de estudio es el rey de los ficheros por lotes: el AUTOEXEC.BAT.
Seguidamente se estudian sus diferencias con el resto del conjunto de ficheros por lotes y se repasan
las rdenes ms usuales.

11-2 El fichero AUTOEXEC.BAT


Como cualquier fichero por lotes, el AUTOEXEC.BAT posee las mismas caractersticas que los
dems: lleva extensin BAT, contiene rdenes, se puede ejecutar introduciendo su nombre despus
del smbolo del sistema y se interrumpe su funcionamiento si pulsamos Ctrl+Pausa. Adems se
aaden tres caractersticas exclusivas:

Tiene un nombre y extensin obligatorias: siempre debe llamarse AUTOEXEC.BAT


Se ejecuta cada vez que arranca el ordenador. Si no existe, ms-dos hace funcionar a tres
rdenes en su lugar: Date, Time y Ver.
Debe residir en el directorio raz de la unidad de arranque. Por ejemplo, si arrancamos con
el disco duro _es lo ms normal_ se buscar el fichero AUTOEXEC.BAT en su directorio
raz y luego, se ejecutar.

En el captulo destinado a las variables del entorno, advertimos que estas variables se guardan en la
memoria y se pierden al apagar el ordenador. La nica forma de tener unas variables del entorno
fijas (PATH, PROMPT, TEMP...) es definindolas en cada arranque del ordenador.
El fichero AUTOEXEC.BAT contiene adems rdenes para configurar el idioma del usuario.
Por ltimo, suele contener unas rdenes cuya misin es cargar programas residentes en memoria.
Estos programas quedarn almacenados en memoria hasta el apagado del ordenador. Se suelen
introducir como programas residentes un anti-virus, el programa Doskey y cualquier otro.
Por tanto, el fichero AUTOEXEC.BAT debe contener estos tres mdulos indispensables:

rdenes para configurar las variables del entorno (Set, Path y Prompt).
rdenes para seleccionar el idioma.
rdenes para instalar programas residentes.

Ejemplo de un fichero AUTOEXEC.BAT


@ECHO OFF
SET PROMPT=$P$G
SET PATH=C:\DOS;C:\BATH;C:\WINDOWS
SET TEMP=C:\DOS\TEMP
SET DIRCMD=/O:GEN

MODE CON CODEPAGE PREPARE=((850) C:\DOS\EGA.CPI)


MODE CON CODEPAGE SELECT=850
C:\DOS\KEYB SP,,C:\DOS\KEYBOARD.SYS
C:\DOS\SMARTDRV.EXE
C:\DOS\DRIVERS\MOUSE.COM
C:\DOS\SHARE.EXE /L:500 /F:5100
C:\DOS\DOSKEY /INSERT
C:\DOS\VSAFE

El primer grupo de rdenes contiene la definicin de variables del entorno. Recuerde que las
variables PATH y PROMPT se pueden definir con la orden Set o con unas rdenes diseadas al
efecto llamadas igualmente Path y Prompt.

Orden
SET
PROMPT
SET PATH
SET TEMP
SET
DIRCMD

Significado
Define el smbolo del sistema.
Define la va de acceso.
Define el directorio para ficheros temporales.
Define cmo queremos ver el directorio (ordenacin, formato...).

El segundo grupo de rdenes definen el espaol como idioma.


El tercer grupo de rdenes cargan en memoria programas residentes. Aunque suele ser suficiente
poner el nombre de la orden a secas, es habitual aadir la trayectoria del fichero delante de su
nombre y la extensin detrs: de esta forma no hay confusin posible. A continuacin se colocan
los parmetros.

Orden
SMARTDRV
MOUSE
SHARE
DOSKEY
VSAFE

Significado
Carga un programa de cach de disco (ver Captulo 13).
Carga el controlador del ratn (se suministra al adquirir un ratn).
Controla la comparticin de ficheros. Es requerido por algunas aplicaciones.
Instala el editor de rdenes y macros (ver Captulo 12).
Carga el anti-virus residente de ms-dos (ver Captulo 17).

11-3 Ejemplo primero: BUSCAR.BAT


Como estudiamos en el Captulo 6, encontramos una aplicacin de la orden Dir en la bsqueda de
ficheros por el disco duro. Ocurre a menudo que creamos un fichero pero luego no lo encontramos
en el directorio esperado. Generalmente, el fichero se encontrar almacenado en otro directorio
diferente. Podemos utilizar el siguiente programa para buscar un fichero por todo el disco duro.
Programa:
@echo off
rem
rem
rem
rem

Autor: Saulo Barajas


Fecha: Agosto de 1995
Programa: BUSCAR.BAT
Cometido: Buscar el fichero o grupo de ficheros

rem especificado como parmetro en la unidad actual.


echo.
dir \%1 /b /s /p
echo.

Ejecucin:
C:\BATH>buscar perdido.*
C:\PERDIDO.TXT
C:\PRUEBA\PERDIDO.DBF
C:\TRABAJOS\PERDIDO.TXT
C:\BATH>

Lo verdaderamente importante en este fichero es la orden Dir. El utilizar el smbolo de directorio


raz `\' antes del parmetro es para comenzar la bsqueda desde el directorio raz a todos los
subdirectorios. De esta forma no har falta cambiar al raz para hacer funcionar al programa.
El parmetro %1 se sustituir automticamente por el fichero o grupo de ficheros a buscar. El
parmetro /b presenta el resultado de la bsqueda en formato sencillo. El parmetro /s permite
buscar el fichero en todos los subdirectorios y, finalmente, el parmetro /p muestra por pantallas el
resultado de la bsqueda.
En el ejemplo se han buscado todos los ficheros con nombre PERDIDO y se han encontrado tres.

11-4 Ejemplo segundo: RELOJ.BAT


Permite mostrar la fecha y la hora del sistema. Este programa se apoya en las rdenes Date y Time
de ms-dos y utiliza lo estudiado en el Captulo 8 para filtrar la entrada y la salida de las rdenes.
Suponga que slo quiere ver la hora. Si ejecuta la orden Time, deber pulsar Enter para no cambiar
la hora actual.
La hora actual es 14:10:51,92
Escriba la nueva hora:

Este problema se soluciona si redirigimos la entrada de la orden desde un fichero, llamado


RELOJ.TXT que contiene nicamente 2 bytes: un retorno de carro (Enter) y un cdigo de fin de
fichero (Ctrl+Z).
Como la salida de la orden contiene dos lneas y slo nos interesa la primera, podemos filtrar la
salida con la orden Find.
Para funcionar el fichero RELOJ.BAT, se necesita crear el fichero RELOJ.TXT de la siguiente
forma: escribimos COPY CON RELOJ.TXT, pulsamos Enter dos veces, pulsamos Ctrl+Z y
pulsamos finalmente Enter.
C:\BATH>copy con reloj.txt

^Z
1 archivo(s) copiado(s)
C:\BATH>

A continuacin tiene el cdigo del programa y un ejemplo de su ejecucin:


Programa:

@echo off
rem Autor: Saulo Barajas
rem Fecha: Agosto de 1995
rem Programa: RELOJ.BAT
rem Cometido: Mostrar la fecha y la hora actual en pantalla
if not exist c:\bath\reloj.txt goto Error
date <c:\bath\reloj.txt |find "actual"
time <c:\bath\reloj.txt |find "actual"
goto Final:
:Error
echo Falta el fichero RELOJ.TXT!
:Final
echo.

Ejecucin:
C:\BATH>reloj
La fecha actual es Mar 15/08/1995
La hora actual es 14:15:09,58
C:\BATH>

En primer lugar se comprueba la existencia del fichero RELOJ.TXT en el directorio C:\BATH. Si el


directorio en el que reside es otro, debemos ajustar las rdenes convenientemente. Si el fichero
RELOJ.TXT no existe, el programa no funcionar correctamente y, con el fin de evitarlo, se
muestra un aviso y termina.
Si el fichero existe, se ejecutan las rdenes Date y Time. El operador `<' hace que la entrada de la
orden sea el fichero RELOJ.TXT y el filtro Find hace aparecer la lnea que contiene la palabra
actual.

11-5 Ejemplo tercero: PROGRAMA.BAT


En muchas ocasiones, cuando un usuario recibe una aplicacin desconocida, se ve obligado a buscar
el fichero ejecutable que haga funcionar la aplicacin. El siguiente fichero por lotes busca todos los
ficheros ejecutables (aquellos con extensin COM, EXE o BAT) y los visualiza en pantalla.
Programa:
@echo off
rem Autor: Saulo Barajas
rem Fecha: Agosto de 1995
rem Programa: PROGRAMA.BAT
rem Cometido: Visualizar ordenados y con pausa en cada
rem pantalla todos los ficheros ejecutables del
rem directorio actual.
set fichtemp=%temp%\temporal.txt
if exist *.com dir *.com /b >%fichtemp%
if exist *.exe dir *.exe /b >>%fichtemp%
if exist *.bat dir *.bat /b >>%fichtemp%
type %fichtemp% |sort |more
del %fichtemp%
set fichtemp=
echo.

Ejecucin:

C:\WP60>programa
CV.EXE
INSTALL.BAT
MCV.EXE
QFIGENES.EXE
VAPINUL.COM
VMP.COM
WPINFO.EXE
WP.COM
WP.EXE
C:\WP60>

Este fichero por lotes necesita crear un fichero temporal para ir aadindole todos los ficheros con
extensiones COM, EXE o BAT. Este fichero temporal debe ser creado en el directorio destinado a
este fin (variable TEMP). Por tanto se crea otra variable llamada FICHTEMP que contiene el
nombre del fichero (TEMPORAL.TXT) y su trayectoria.
Si no se utilizase el directorio definido en la variable TEMP para crear el fichero TEMPORAL,
podra darse el caso de intentar escribir en un disquete protegido contra escritura y no poder
completarse la funcin del programa.
La primera lnea If crea el fichero temporal con el nombre de los ficheros con extensin COM. La
segunda lnea If aade al fichero temporal, aquellos ficheros con extensin EXE y la tercera lnea If
hace lo mismo con los ficheros BAT.
La orden Type muestra todos los programas (ahora grabados en el fichero TEMPORAL.TXT)
ordenados y por pantallas.
Finalmente, la orden Del borra el fichero temporal creado y la orden Set elimina la variable del
entorno creada.

11-6 Ejemplo cuarto: BORRAR.BAT


Este fichero por lotes, desplaza un fichero o grupo de ficheros a un directorio llamado
C:\BASURA. De esta forma, si luego necesitamos recuperar un fichero borrado, slo har falta
buscarlo en el directorio C:\BASURA. Sin embargo, esto tiene un problema: el directorio
C:\BASURA crecer y crecer de tamao llenando nuestro disco duro de ficheros inservibles. Por
tanto, es necesario eliminar peridicamente el contenido de este directorio.
Si le parece interesante la idea consulte la orden Undelete. Undelete detecta la orden Del de ms-dos
y mueve, igualmente, los ficheros a un directorio. Lo ms importante de Undelete es la posibilidad
de eliminar (realmente) los ficheros ms antiguos almacenados de una forma automtica.
Programa:
@echo off
rem
rem
rem
rem
rem
rem

Autor: Saulo Barajas


Fecha: Agosto de 1995
Programa: BORRAR.BAT
Cometido: Mueve el fichero o grupo de ficheros
especificados a un directorio llamado
C:\BASURA. Si no existe, lo crea.

if "%1"=="" goto Error


if not exist %1 goto Error
xcopy %1 c:\basura\ >nul

if errorlevel 1 goto Error


del %1
echo A continuacin se recuerda el estado del directorio C:\BASURA
DIR C:\BASURA |FIND "archivo(s)"
goto Final
:Error
echo No se pudo borrar %1!
:Final
echo.

Ejecucin:
C:\PRUEBA>borrar *.ini
A continuacin se recuerda el estado del directorio C:\BASURA
5 archivo(s) 27.238 bytes
C:\PRUEBA>

La primera orden If detecta si no se ha introducido ningn parmetro, produciendo un aviso en este


caso. La segunda orden If comprueba que el fichero para borrar exista, si no es as dar un mensaje
de error.
La orden Xcopy mueve el fichero o ficheros especificados como parmetros al directorio
C:\BASURA. La barra inclinada invertida detrs de BASURA se emplea para informar a Xcopy
que BASURA es un directorio y no un fichero. Si el directorio no existe, Xcopy sabr que es un
directorio y lo crear automticamente. La salida de la orden se ha redireccionado al dispositivo
ficticio NUL. De esta forma, no aparecer ningn mensaje producido por la orden en la pantalla.
La siguiente lnea If comprueba el cdigo de salida. Si se ha producido un error en la copia de los
ficheros, los ficheros no se borrarn. Esto es una medida de seguridad para evitar la desaparicin
definitiva de los ficheros.
La orden Del borra los ficheros del directorio actual. Ya hemos mencionado el problema de este
fichero por lotes. Como solucin, se informa al usuario del nmero de ficheros y los bytes ocupados
por todos ellos en el directorio C:\BASURA. De esta forma el usuario sabr si debe borrar con la
orden Del los ficheros del directorio BASURA.

11-7 Ejemplo quinto: COPIADIR.BAT


Este programa se basa en el mtodo para copiar un directorio que no cabe en un nico disquete, en
varios; explicado en el apartado 6-3.
Programa:
@echo off
rem Autor: Saulo Barajas
rem Fecha: Agosto de 1995
echo Este programa copia todos los ficheros del
echo directorio actual a la unidad A:
echo (si no cabe en un slo disquete, se pedirn ms)
if not exist *.* goto Error
attrib +a *.*

:Proceso
echo.
echo ** Inserte un nuevo disquete en A: Pulse Enter para proseguir
pause >nul
xcopy *.* a:\
if errorlevel
if errorlevel
if errorlevel
if errorlevel

/m
5 goto
4 goto
1 goto
0 goto

Error
Proceso
Error
FinCopia

echo.
echo No se pudo realizar la copia!
goto final
:FinCopia
echo.
echo El proceso de copia se complet con xito!
:Final
echo.

La primera lnea If detecta si el directorio actual est vaco produciendo un error. La orden Attrib
enciende el bit de archivar a todos los ficheros del directorio actual.
Seguidamente, COPIADIR.BAT pide un primer disquete en la unidad A:, luego comienza la copia
de todos los ficheros a la unidad A:. El parmetro /m desactiva el bit de archivar a los ficheros
copiados.
Las siguientes lneas If comprueban el resultado de la orden.
Las posibilidades son las siguientes: a) No hay suficiente espacio en el disco para copiar todos los
ficheros. En este caso, se pide otro disquete y se reanuda la copia donde se qued; b) Se presion
Ctrl+Pausa u ocurri un error de escritura en el disco. Se produce un mensaje y finaliza; c) La copia
fue correcta. Esto significa que todos los ficheros han podido copiarse en uno o ms disquetes y por
tanto, se ha cumplido el objetivo del programa.

Captulo 8
Redireccionamientos
8-1 Introduccin
Para comprender mejor el significado del redireccionamiento, intente responder primeramente las
siguientes preguntas.
1. Cuando el ordenador solicita informacin, qu dispositivo utiliza para recibirla?
2. Cuando el ordenador necesita presentar informacin, qu dispositivo emplea?
Las respuestas correctas son el teclado y el monitor respectivamente. En este captulo 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.

Funcin

Dispositivo

Entrada por defecto

CON (teclado)

Salida por defecto

CON (monitor)

8-2 Los operadores


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

Operador

Descripcin

Sintaxis

<

Redireccin de la entrada

orden <fichero/dispositivo

>

Redireccin de la salida

orden >fichero/dispositivo

>>

Redireccin de la salida a un fichero existente

orden >>fichero

Redireccin de la salida de una orden a entrada


de otra orden

orden1 |orden2

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 misin 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 lneas.

En muchas ocasiones la informacin 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
informacin en cada pantalla. Entonces, More muestra la siguiente lnea:
-- Ms --

Despus de leer los datos en pantalla, podemos pulsar Enter para continuar o tambin Ctrl+Pausa
para interrumpir.

Sort
Recibe como entrada un conjunto de caracteres organizados en filas y devuelve los mismos
caracteres ordenando cada fila alfabticamente.
El uso ms frecuente de este filtro es ordenar alfabticamente el contenido de un fichero. Admite
dos modificadores:

Modificador Descripcin
/R Ordena inversamente (de la `Z' a la `A' y del `9' al `0')
/+columna Indica la columna del carcter 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) despus 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 maysculas y minsculas 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)

8-4 Redireccin de la entrada. Operador `<'


Cmo hemos dicho al principio del captulo, las rdenes del dos solicitan informacin a travs del
teclado. Con este operador hacemos que la informacin de entrada proceda desde un fichero o un
dispositivo.
Aplicaciones:

Mostrar un fichero de texto con pausa en cada pantalla.

A:\>more <recuerdo.txt

(More toma como entrada el fichero RECUERDO.TXT y como salida, el monitor)

Ordenar un fichero alfabticamente y verlo en la pantalla.

A:\>sort <personal.txt

(Sort toma como entrada el fichero PERSONAL.TXT y como salida, el monitor)

Ordenar un fichero alfabticamente a partir de una columna. Ejemplo: Si el fichero


PERSONAL.TXT contiene nombres y datos del personal de una empresa, podemos
ordenarlo por la columna que indica el puesto ejercido por cada empleado.

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

Encontrar las filas que contienen una cadena de caracteres.

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 autocomprobacin
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 alfabticamente.
d) Ordenar el fichero LISTIN.TXT alfabticamente a partir de la columna 30.
e) Ordenar el fichero AMIGOS.TXT inversamente.
f) Buscar la cadena "IGNACIO" en el fichero PERSONAL.TXT
2. Si no utilizamos el operador `<', cul es el dispositivo de entrada por defecto?

8-5 Redireccin 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 nmero de serie en impresora)


2. 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 raz de C:)


C:\>ver >version.txt

(crea el fichero VERSION.TXT conteniendo la versin actual de ms-dos)

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

Ordenar un texto introducido por teclado en un fichero. El cursor se sita debajo de la


orden esperando las filas de texto. Al terminar cada fila debemos pulsar Enter y para
terminar la introduccin de texto, Ctrl+Z y luego Enter.

B:\>sort >amigos.txt

(Sort asume como entrada el teclado y como salida el fichero AMIGOS.TXT)

Ordenar un fichero en otro.

B:\>sort <listin1.txt >listin2.txt

(Sort asume como entrada el fichero LISTIN1.TXT y como salida, el fichero LISTIN2.TXT)

Ordenar un fichero en la impresora.

B:\>sort <listin1.txt >prn

(Sort toma como entrada el fichero LISTIN1.TXT y como salida, la impresora)

Buscar una cadena en un fichero y crear otro con el resultado de la bsqueda.

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

Ejercicios de autocomprobacin
3. Indique la entrada y la salida de las siguientes lneas 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

8-6 Redireccin 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 adiccin `>>' no sobrescribe sino aade al fichero existente.
La siguiente orden aade al fichero SOS.TXT la ayuda de la orden Time. Si no existe, se crea el
fichero.
A:\>time /? >>sos.txt

La siguiente aade 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 parmetros 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 parmetros para ver la fecha actual y poder escribir una nueva.
Presione ENTRAR para conservar la misma fecha.
D:\>

Ejercicios de autocomprobacin
4. 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) Aadir la etiqueta y el nmero de serie de la unidad actual (orden Vol) al fichero VARIOS.TXT
e) Aadir el directorio actual al fichero VARIOS.TXT

8-7 Redireccin de la salida a entrada de otra orden ( | )


El uso del operador `|' guarda la siguiente sintaxis:
orden1 |orden2
Nota: El smbolo de tubera o smbolo de canalizacin `|' 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 smbolo tubera, ms-dos necesita crear un fichero temporal. Para ello
utiliza la variable de entorno TEMP. Si esta variable no est bien definida, puede ocurrir algn
error.
Aplicaciones:

Mostrar con pausa en cada pantalla la salida de una orden.

B:\>type informe.txt |more


C:\DOS>dir |more

C:\>tree |more

Obtener una lnea determinada de la salida de una orden.

C:\>dir |find "bytes libres"


20.443.136 bytes libres

(muestra los bytes libres de la unidad C:)

C:\>set |find "TEMP"

TEMP=C:\DOS

(muestra el valor de la variable TEMP o nada si no existe)

Ejercicios de autocomprobacin
5. Entre las siguientes lneas 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

Clave de los ejercicios de autocomprobacin


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.

Puesta en prctica
Vamos a seguir los siguientes pasos:
1. Crear un fichero llamado AMIGOS1.TXT que contenga los siguientes datos. (Las dos
primeras lneas no debe crearlas en el fichero: estn para introducir las columnas
correctamente).
0
10
20
30
40
12345678901234567890123456789012345678901234567
Ismael
Caballero
Valladolid
7986821
Mara
Lpez
Crdoba
4568756
Sonia
Aguilar
Valladolid
1239083
Juan
Ramrez
Crdoba
7643434
Laura
Daz
Crdoba
4221336
Enrique
Ortiz
Burgos
3423444
Mnica
Carrasco
Madrid
1234123
Cristina
Reyes
Madrid
3344334

2.
3.
4.
5.
6.

Conocer todos los amigos de Crdoba.


Conocer el nmero de telfono de Cristina.
Ordenar alfabticamente el fichero basndonos en la ciudad.
Ordenar alfabticamente el fichero basndonos en el apellido.
Crear otro fichero llamado AMIGOS2.TXT que contenga lo siguiente:
0
10
20
30
40
12345678901234567890123456789012345678901234567
Antonio
Lpez
Alicante
8344621
Juan
Moreno
Alicante
4352359

7. Unir ambos ficheros en un tercero llamado AMIGOS3.TXT


8. Ordenar alfabticamente AMIGOS3.TXT por el nombre y escribir el resultado en un nuevo
fichero llamado AMIGOS4.TXT.
9. Visualizar por pantalla AMIGOS4.TXT. Si tiene impresora, imprmalo.
10. Borrar los cuatro ficheros creados.

Resolucin en el ordenador:

A:\>copy con amigos1.txt


Ismael
Caballero
Valladolid
Mara
Lpez
Crdoba
Sonia
Aguilar
Valladolid
Juan
Ramrez
Crdoba
Laura
Daz
Crdoba
Enrique
Ortiz
Burgos
Mnica
Carrasco
Madrid
Cristina
Reyes
Madrid
^Z
1 archivo(s) copiado(s)

7986821
4568756
1239083
7643434
4221336
3423444
1234123
3344334

A:\>find "Crdoba" <amigos1.txt


Mara
Lpez
Crdoba
Juan
Ramrez
Crdoba
Laura
Daz
Crdoba

4568756
7643434
4221336

A:\>find "Cristina" <amigos1.txt


Cristina
Reyes
Madrid

3344334

A:\>sort /+26 <amigos1.txt


Enrique
Ortiz
Burgos
Laura
Daz
Crdoba
Mara
Lpez
Crdoba
Juan
Ramrez
Crdoba
Mnica
Carrasco
Madrid
Cristina
Reyes
Madrid
Sonia
Aguilar
Valladolid
Ismael
Caballero
Valladolid

3423444
4221336
4568756
7643434
1234123
3344334
1239083
7986821

A:\>sort /+12 <amigos1.txt


Sonia
Aguilar
Valladolid
Ismael
Caballero
Valladolid
Mnica
Carrasco
Madrid
Laura
Daz
Crdoba
Mara
Lpez
Crdoba
Enrique
Ortiz
Burgos
Juan
Ramrez
Crdoba
Cristina
Reyes
Madrid

1239083
7986821
1234123
4221336
4568756
3423444
7643434
3344334

A:\>copy con amigos2.txt


Antonio
Lpez
Alicante
Juan
Moreno
Alicante
^Z
1 archivo(s) copiado(s)

8344621
4352359

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


A:\>type amigos2.txt >>amigos3.txt
A:\>type amigos3.txt
Ismael
Mara
Sonia
Juan
Laura
Enrique
Mnica
Cristina

Caballero
Lpez
Aguilar
Ramrez
Daz
Ortiz
Carrasco
Reyes

Valladolid
Crdoba
Valladolid
Crdoba
Crdoba
Burgos
Madrid
Madrid

7986821
4568756
1239083
7643434
4221336
3423444
1234123
3344334

Antonio
Juan

Lpez
Moreno

Alicante
Alicante

8344621
4352359

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


A:\>type amigos4.txt

Antonio
Cristina
Enrique
Ismael
Juan
Juan
Laura
Mara
Mnica
Sonia

Lpez
Reyes
Ortiz
Caballero
Moreno
Ramrez
Daz
Lpez
Carrasco
Aguilar

A:\>del amigos?.txt
A:\>

Alicante
Madrid
Burgos
Valladolid
Alicante
Crdoba
Crdoba
Crdoba
Madrid
Valladolid

8344621
3344334
3423444
7986821
4352359
7643434
4221336
4568756
1234123
1239083

S-ar putea să vă placă și