Está en la página 1de 6

D.O.S.

AVANZADO (1)
1997

CAPITULO II

PROCESAMIENTO POR LOTES

Conceptos sobre el Procesamiento por Lotes


Frecuentemente se realizan secuencias determinadas de comandos en condiciones similares o incluso idnticas, una y otra vez, o en forma peridica.
Para facilitar esta tarea y evitar que en cada caso se deban ejecutar
uno por uno los comandos, el D.O.S. ofrece la facilidad de usar archivos de procesamiento por lotes (archivos batch).
Estos son archivos de texto, que contienen secuencias de comandos del
D.O.S. Los nombres de estos archivos tienen la extensin .BAT (BATch),
y para ejecutarlos se procede como si fueran comandos externos.
Cuando se ejecuta un archivo batch, en primer lugar el DOS realiza una
revisin para comprobar si los caracteres escritos concuerdan con alguno de los comandos internos del DOS, y si concuerdan se ejecuta. En
caso contrario, busca en el disco si coinciden con un comando externo,
o con un programa de aplicacin (.EXE o .COM), y si lo encuentra se ejecuta. En caso de que tampoco exista, verifica si hay un archivo .BAT
con ese nombre y lo ejecuta (comienza nuevamente el ciclo dentro de ese nuevo archivo).
(Recordemos que la secuencia de bsqueda de los comandos del DOS es:
primero si es interno, luego si existe un archivo .Com, luego un archivo .Exe, y por ltimo un .Bat).
Si creamos un archivo .Bat cuyo nombre sea igual a uno .Com, siempre
se ejecutar ste, y el nuestro no podr usarse a menos que le cambiemos el nombre, o lo cambiemos a otro directorio y lo ejecutemos desde
all.
Para detener momentneamente la ejecucin de un archivo batch se presiona la tecla [Pause] o las teclas [Ctrl-S]. Esto congela la pantalla
hasta que se presione cualquier tecla.
Para interrumpir la ejecucin, se presionan las teclas [Ctrl-C] o bien
[Ctrl-Break] (ms de una vez si fuera necesario) y se confirma si se
desea terminar o continuar.
Para crear o modificar archivos batch, se suele utilizar un editor de
texto (el D.O.S. viene provisto con uno de ellos). En el mercado se
pueden conseguir otros, con diversas caractersticas.
Otra posibilidad es:
COPY CON nombre.BAT
Crea el archivo nombre.BAT que contendr lo que se escriba a continuacin. Para terminarlo se presiona [F6] y luego [Enter].
Tiene la limitacin de que no pueden modificarse o borrarse las lneas ya escritas, para corregir errores.

D.O.S. AVANZADO (2)


1997

Parmetros reemplazables
Con frecuencia se querr tener un archivo batch que funcione en forma
ligeramente distinta segn las condiciones en que se utilice.
Por ejemplo, los dos archivos siguientes son casi idnticos:
archivo1.bat

archivo2.bat

COPY NOTA1.TXT A:
FC NOTA1.TXT A:\NOTA1.TXT

COPY NOTA2.TXT A:
FC NOTA2.TXT A:\NOTA2.TXT

La nica diferencia es el nombre del archivo usado en los comandos COPY y FC.
Se podra utilizar un mismo archivo batch en ambos casos si indicramos el nombre
del archivo como parmetro.

El DOS admite hasta 10 parmetros reemplazables a modo de huecos en un


archivo batch. Se los identifica con smbolos del %0 al %9.
Al ejecutar el archivo batch, se escribe el nombre del mismo, y a continuacin, separados por espacios, los argumentos que reemplazarn a
los parmetros internos correspondientes.
El parmetro %0 ser reemplazado por el nombre del archivo batch, %1
por el primer argumento, %2 por el segundo, y as sucesivamente.
Por ejemplo, si archivo.bat consiste en:

COPY %1 %2
FC %1 %2\%1

Al escribir en la lnea de comandos:

ARCHIVO

NOTA3.TXT

A:

Se ejecutar:

COPY NOTA3.TXT A:
FC NOTA3.TXT A:\NOTA3.TXT

Comando ECHO
Este comando cumple dos funciones:
Por un lado, controla si se despliegan o no en la pantalla los comandos del archivo batch. Se encuentra activado (on) por omisin.
Al desactivarlo (off), no se despliegan los comandos (pero se muestran los resultados producidos por los mismos).
Sintaxis:
ECHO on | off
ON activa el eco, es decir las rdenes ejecutadas se muestran
en la pantalla. OFF desactiva el eco.
El otro uso del comando
Sintaxis:
ECHO mensaje

es presentar mensajes en la pantalla.

Mensaje es una lnea de texto que se usa para dar avisos al operador mientras se est ejecutando el archivo batch.
Para que muestre una lnea vaca se usa: ECHO. (sin espacio).
Si no se especifica ningn parmetro,
activado (on) o desactivado (off).

muestra la situacin actual:

Otra forma de evitar que se muestre en pantalla el uso de un comando,


es iniciar la lnea con el smbolo @ (solamente se evitar el eco de
esa lnea).

D.O.S. AVANZADO (3)


1997

Comando PAUSE
Detiene momentneamente la ejecucin del archivo batch y muestra un
mensaje indicando que se debe pulsar una tecla para continuar.
Sintaxis:
PAUSE

comentario

(El comentario aparece slo si el comando Echo est activado.)


Pulsando cualquier tecla (excepto [Ctrl-C]), el proceso se reanudar.
Un uso muy comn es para avisar que se coloque o retire un diskette
(en este caso se suele usar en combinacin con el comando Echo).

Comando REM
Permite agregar comentarios al archivo, sin que el DOS los interprete
como rdenes a ejecutar.
Sintaxis:
REM

comentario

Los comentarios ayudan a identificar y recordar qu hacen los comandos


del archivo batch.
Es recomendable comentar al principio del archivo, el nombre del mismo, su utilidad, el tipo de datos a ingresar como parmetros (si se utilizan), el autor, etc.
En los comentarios no se admiten los signos

< > |

Si el Echo est desactivado, el comentario de Rem no es mostrado.


Se puede usar Rem sin comentarios para dejar renglones de separacin,
(facilita la revisin del archivo batch). Pero si se dejan renglones
directamente en blanco, se obtiene el mismo efecto.

Comando CALL
Llama a un archivo batch desde otro, sin detener la ejecucin del que
hace la llamada.
Sintaxis:
CALL

unidad:\ruta\archivo

parmetros

donde:
archivo: es el nombre del archivo batch que se invoca
parmetros: son los argumentos que se pasan al archivo invocado (includos los parmetros reemplazables %1 a %9)
Se puede crear un archivo batch que se invoque a s mismo (llamada recursiva), pero es necesario incluir una condicin de terminacin.
En este comando no se admiten los signos

< > |

Si se omite la palabra Call y se invoca directamente el archivo batch,


al terminar la ejecucin del mismo, no se retorna al archivo original.

D.O.S. AVANZADO (4)


1997

Comando IF
Ejecuta un proceso condicional (permite realizar alguna actividad segn se den o no determinadas condiciones).
Sintaxis:
IF

condicin

comando

Si la condicin se cumple, se ejecuta el comando. En caso contrario, ignora el comando y contina con la siguiente lnea.
Si se incluye la preposicin NOT, el comando se ejecutar slo
si la condicin no se cumple.
Hay tres tipos de condiciones posibles:
Igualdad de dos cadenas de caracteres.
Sintaxis:
IF NOT cadena1 == cadena2 comando
La condicin es verdadera si ambas cadenas son iguales. Pueden
ser cadenas de letras (no necesitan comillas) o variables (por
ej. %1).
Las cadenas no pueden contener coma, punto y coma, espacio o =
Cuando se usan parmetros de reemplazo como cadenas, es conveniente usar comillas, para evitar mensajes de error en caso de
que no tuvieran valor. Ejemplo: IF "%1" == "S" Type %0.bat
Comprobacin de la existencia de un archivo.
Sintaxis:
IF NOT EXIST archivo comando
La condicin es verdadera si el archivo existe.
Nota: Para averiguar la existencia de un directorio se acude
al artificio de usar el dispositivo Nul (existente en todo
directorio). Ej.: IF EXIST C:\DATOS\NUL Copy *.* C:\DATOS
Control de finalizacin del comando anterior.
Sintaxis:
IF NOT ERRORLEVEL nmero comando
La condicin es verdadera si el cdigo de salida del comando
anterior es igual o mayor que el nmero indicado.

Comando GOTO
Permite la ejecucin de comandos dentro del archivo batch en forma no
secuencial: salta a la lnea marcada con un rtulo determinado, y contina la ejecucin en ese punto.
Sintaxis:
GOTO

rtulo

El rtulo empieza siempre con el signo dos puntos (:), y puede


contener espacios, pero no otros separadores.
(Las lneas que empiezan con dos puntos no se ejecutan).
Goto usa slo los 8 primeros carateres del rtulo.
En la sentencia Goto no es necesario incluir los dos puntos.
Se puede usar este comando en combinacin con If para la realizacin
de operaciones condicionales.

D.O.S. AVANZADO (5)


1997

Comando FOR / DO
Ejecuta un comando para cada archivo de una lista de archivos.
Sintaxis:
FOR

%%variable

IN

(lista)

DO

comando

parmetros

donde:
%%variable: es una variable reemplazable, que ir tomando el
nombre de cada archivo de la lista
el nombre de la variable admite cualquier carcter, excepto
los nmeros 0 a 9.
lista: es uno o ms nombres de archivos, separados por espacios; deben ir entre parntesis
admite el uso de comodines
comando: es el comando que ser aplicado a cada archivo de la
lista
parmetros: los que puedan corresponder al comando utilizado
Este comando s admite el uso de los signos
Ejemplo:

< > |

FOR %%arch IN (*.txt *.bat) DO Type %%arch

Comando SHIFT
Efecta un corrimiento de los parmetros reemplazables en el archivo
batch.
Sintaxis:
SHIFT
El valor que tiene el parmetro %0 se pierde, el valor de %1 es copiado a %0, el de %2 a %1, y as sucesivamente. El ltimo parmetro queda
libre para colocarle algn valor.
Cada vez que se ejecuta, corre los parmetros una posicin, y siempre
en el mismo sentido. (Una vez ejecutado Shift, no hay manera de recuperar el valor de %0).
Si en la lnea de comandos se especificaron ms de 10 argumentos, mediante Shift se puede hacer que vayan tomando sucesivamente el parmetro %9.

D.O.S. AVANZADO (6)


1997

Archivo de Procesamiento por Lotes Inicial


En el directorio raz del disco existe un archivo batch, que se ejecuta automticamente cuando se inicia el DOS: el AUTOEXEC.BAT
Este archivo contiene una sucesin de comandos que resultan de utilidad al empezar la sesin de trabajo y que de otro modo sera necesario
ir ejecutando manualmente.
Al arrancar, el DOS busca en el directorio raz del disco el archivo
AutoExec.Bat. Si lo encuentra, lo ejecuta (sin pedir confirmacin de
la fecha y hora). Si no lo encuentra, presenta la solicitud de fecha y
hora.
Para una mejor comprensin de la iniciacin del sistema, a continuacin se muestra un diagrama lgico con los pasos que realiza el DOS.
Carga del DOS
|
|
busca el archivo Config.Sys
|
|
^
< existe? >--SI----------->v
|
|
|
NO
el DOS configura el
|
sist.p/dispositivos
|
|
|
|
|<---------------------
|
|
el DOS carga el
procesador de comandos (Command.Com)
|
|
el Command.Com busca
el archivo AutoExec.Bat
|
|
^
< existe? >--SI----------->v
|
|
|
NO
|
|
|
pide fecha y hora
ejecuta el AutoExec.Bat
|
|
|
|
|<---------------------
|
|
aparece el prompt

También podría gustarte