Características Del Procesamiento Por Lotes
Características Del Procesamiento Por Lotes
Características Del Procesamiento Por Lotes
Ordenes
Todas las órdenes admitidas después del símbolo del sistema pueden introducirse
también en un fichero por lotes. Además, existen una serie de órdenes diseñadas
específicamente para estos ficheros: Orden Breve descripción
Símbolo Significado
:etiqueta Nombre de una etiqueta
%número Parámetro del fichero por lotes
%variable% Variable del entorno
%%variable Variable de la orden For
La orden ECHO
Se puede utilizar de cinco formas:
Programa:
echo off
date
time
Ejecución:
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
Ejecución:
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:
Programa:
@echo off
echo Este es el fichero TIEMPO.BAT
date
time Ejecución:
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:
La orden REM
Permite introducir comentarios internos en el código de un fichero por lotes. Las
líneas precedidas por la palabra Rem serán ignoradas durante el funcionamiento
del fichero por lotes. Se suele utilizar esta orden para introducir aclaraciones en el
código del fichero. Objetivo: facilitar su lectura y corrección 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
Gestión de parámetros
Los parámetros son informaciones adicionales colocadas detrás del nombre de
una orden. Si la mayoría de las órdenes de ms-dos admiten parámetros, también
será posible gestionar parámetros en los ficheros por lotes. Vamos a confeccionar
un fichero por lotes que borre dos ficheros introducidos como parámetros.
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. También podemos presionar Ctrl+Pausa y así,
interrumpir el desarrollo del fichero. Presione cualquier tecla para continuar . . .
Para mejorar la presentación, podemos insertar un mensaje indicando el motivo de
la detención del programa gracias a la orden Echo: echo Inserte un disquete en la
unidad B:pause
La orden GOTO
Normalmente un fichero por lotes se desarrolla secuencialmente, desde la primera
línea hasta la última. Sin embargo, la orden Goto permite desviar la ejecución del
programa hasta una etiqueta especificada como parámetro.
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 idéntica a `BALANCE_DE_ENERO'.
Ejecución:
Versión 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 más líneas.
Proceso
copy a:\
pause >nul
goto Proceso
La orden IF
Desvía condicionalmente el proceso de ejecución de un fichero por lotes. Admite 6
sintaxis diferentes:
IF EXIST
Un programador debe considerar todas y cada una de las situaciones posibles al
ejecutarse su programa y, por tanto, debe evitar la aparición de mensajes de error
inesperados en la pantalla.
@echo off
del %1
@echo off
if exist %1 del %1
IF cadena1==cadena2
@echo off
IF ERRORLEVEL
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 código de salida es
igual o superior al especificado detrás de ERRORLEVEL.
Código Significado
0 Los ficheros fueron copiados sin error
1 No se encontraron ficheros para copiar
El usuario presionó Ctrl+Pausa para suspender el
2
proceso de Xcopy
Ocurrió un error de inicio. No hay suficiente
memoria o espacio en disco, se introdujo un
4
nombre de unidad no válida o se utilizó una sintaxix
incorrecta en la línea de órdenes
5 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
La orden CHOICE
Permite escoger una opción entre varias y, dependiendo de la opción
elegida, devuelve un código de salida.
Su sintaxis es:
copy a:\ .
@echo off
echo --------------------
echo.
echo A. Anti-Virus
echo B. Backup
echo D. Defragmentar
echo E. Editor
echo S. Salir
echo.
: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 código de salida 1 y así
sucesivamente hasta la `S' que corresponde a un
código 5. Gracias al modificador /N Choice no
muestra las teclas admitidas detrás del mensaje.
El modificador /T toma como opción por defecto
la `S' si pasan 15 segundos sin pulsar ninguna
tecla.
Ejemplo:
Otras órdenes
Existen otras tres órdenes más diseñadas para
su uso en ficheros por lotes. Como estas
órdenes tienen un menor uso, se exponen
resumidamente a continuación.
La orden FOR
Su sintaxis es:
FOR %%variable IN (conjunto) DO orden
La orden SHIFT
Programa:
@echo off
rem Programa: DEMO2.BAT
echo El parámetro 1 es %1
shift
echo El parámetro 2 es %1
shift
echo El parámetro 3 es %1
Ejecución:
C:\BATH>demo2 juan maria alberto
El parámetro 1 es juan
El parámetro 2 es maria
El parámetro 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 [ParámetrosDelFichero]
En el siguiente ejemplo, el fichero PRG1.BAT
llama a PRG2.BAT. Cuando la ejecución de
PRG2.BAT termina, continua PRG1.BAT en la
siguiente línea a Call.
Programa PRG1.BAT:
@echo off
echo línea 1
call prg2.bat
echo línea 4
echo línea 5
Programa PRG2.BAT:
@echo off
echo línea 2
echo línea 3
Ejecución:
C:\BATH>prg1
línea 1
línea 2
línea 3
línea 4
línea 5
C:\BATH>
Sistemas Operativos de
procesamiento por Lotes
La Computadora ejecuta un programa a la vez al
procesar datos en grupo o en lotes. En
los Sistemas operativos antiguos, los usuarios
tenían que entregar sus trabajos al centro de
computo en paquetes de tarjetas perforadas.
Tenían que esperar horas y hasta días para que
se le devolviera impresiones a sus escritorios.
Sistemas Multiprogramados de
Tiempo Compartido
Estos sistemas funcionan similar a la
multiprogramación. El objetivo de la
multiprogramación es permitir que varios
procesos se ejecuten simultáneamente, pero
para lograrlo, cada proceso debe ejecutarse un
cierto tiempo y luego entregar el control de
la CPU a otro, de este mecanismo se encarga
los sistemas de Tiempo Compartido.