Archivos por Lotes

Enviado por Jose Ignacio Gasca R. y clasificado en Otras materias

Escrito el en español con un tamaño de 65,24 KB

Tema: Archivos por lotes

Es un archivo de texto o programa formado por varios comandos del DOS.

Entre las operaciones que se pueden automatizar:

· Introducir la fecha y hora del día
· Iniciar programas de aplicación
· Crear copias de respaldo
· Cambiar el nombre de un comando

Para que puedan ser reconocidos por el DOS como archivos especiales, los archivos de procesamiento por lotes deberán llevar la extensión .BAT. En el nombre de identificación.

Se puede ejecutar un archivo de procesamiento por lote introduciendo el nombre del archivo en la línea de solicitud del MS-DOS mediante la siguiente sintaxis:


um:trayectoriam\nombrearchivo parámetros


um: es el nombre de la unidad de disco que contiene al archivo de procesamiento por lote.
Trayectoriam\ es la trayectoria del archivo de procesamiento por lote.
Nombre archivo es el nombre raíz del archivo de procesamiento por lote.
Parámetros son los parámetros que utilizara el archivo de procesamiento por lote.

REGLAS PARA EJECUTAR ARCHIVOS DE PROCESAMIENTO POR LOTE:

Reglas para la ejecutar archivos de Procesamiento por Lote
·Un archivo de procesamiento por lote debe tener la extensión .bat

·Si no se proporciona el nombre de una unidad de disco, se usa la unidad de disco en curso.

·Si no se proporciona un nombre de trayectoria, se usa el directorio en curso.

·Para invocar un archivo de procesamiento por lote, basta con teclear su nombre raíz. Por ejemplo, para invocar el archivo de procesamiento por lote FREC.BAT, digitar FREC, y después pulsar la tecla ENTER

·MS-DOS ejecuta cada mandato en una línea a la vez. Los parámetros especificados se sustituyen por los marcadores cuando se usa el mandato.

·MS-DOS reconoce un máximo de diez parámetros. Se puede usar el sub. Mandato SHIFT para superar esta limitación.

·Si el MS-DOS encuentra un sub. mandato de procesamiento por lote incorrectamente escrito, emite un mensaje de error de sintaxis, para después continuar con los mandatos restantes del archivo.
Se puede detener la ejecución de un archivo de procesamiento por lote presionando ctrl.+Break. MS-DOS presentara este mensaje:
Termínar batch job (Y/N)?_
(Terminar el trabajo de procesamiento por lotes (S/N)?
Si se contesta Y(S) por yes (si), el resto de los mandatos se ignoran, y aparece la línea de solicitud del sistema. Si se contesta N por no, MS-DOS se salta el mandato en curso pero continua el proceso de los otros mandatos de archivo.

·MS-DOS recuerda cuál directorio contiene al archivo de procesamiento por lote. Su propio archivo puede hacer que el directorio en curso cambie en cualquier momento.

·MS-DOS recuerda cuál disquete contiene el archivo de procesamiento por lote, y se pueden cambiar los disquetes en cualquier momento. MS-DOS solicitara que se inserte el disquete que contiene el archivo de procesamiento por lote, si es necesario. Sin embargo para la versión V3.0, si el archivo de procesamiento por lote esta en disquete no se puede retirar, pues de lo contrario MS-DOS presenta un mensaje de error y suspende el procesamiento por lote.

·Se puede hacer que el MS-DOS ejecute un segundo archivo de procesamiento por lote inmediatamente después de que finalice el primero. Simplemente se debe introducir el nombre del segundo archivo como el último mandato del primer archivo. También se puede ejecutar un segundo archivo dentro del primer archivo y regresar a éste usando el subcomando CALL.

·Los submandatos de procesamiento por lote son validos solo para archivos de este tipo. No es posible, pues, ejecutar submandatos de procesamiento por lote como mandatos normales del MS-DOS.


·No se puede redirigir la entrada o salida de un archivo de procesamiento por lote. Sin embargo, se puede usar redirección en las líneas dentro de un archivo de este tipo.

Comandos para los archivos por lotes[ ]Menuitem@echo off Submenú@echo on if string1==string2Menudefaultecho Menucolorecho.Deviceif errorlevelInstallif %1 al %9Includeif %config%Setif existPromptgotoPath:Temppause > nulDircmdcallRemchoiceFichtempshift
Rem Línea de comentario. Podemos usar REM O ::
Sintaxis: rem comentario

Imagen
Ejemplo:


Fichtemp Comando que permite crear un fichero temporal para ir añadiéndole 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 (prueba.txt) y su trayectoria.
Sintaxis: set fichtemp=ruta

Imagen
Ejemplo:

@echo off Desactiva la visualización en pantalla de los comandos.
Sintaxis: @echo off

Imagen
Ejemplo:

@echo on Nos permite ver en pantalla los comandos del DOS que están siendo ejecutados desde un archivo de proceso por lotes.
Sintaxis: @echo on

Imagen
Ejemplo:


Echo Este sub comando nos permite imprimir mensajes en la pantalla. Es útil solo si ECHO esta desactivado. Deberá existir una línea de mensaje por comando.
Sintaxis: echo Letrero

Imagen
Ejemplo:


Echo. Permite dejar una línea en blanco.
Sintaxis: echo. (enter)

Imagen
Ejemplo:

If errorlevel La condición es verdadera solo si el comando anterior devuelve un código de salida igual o mayor que el especificado.

Sintaxis:if errorlevel opción goto etiqueta

Imagen

Ejemplo:


If %1 El signo % seguido de un numero (del 1 al 9) permite pasar parámetros al invocar nuestro archivo bat. Por ejemplo si tenemos un archivo saludo.bat con la linea echo Hola %1, si lo invocamos tecleando archivo.bat pepe presentará en pantalla Hola Pepe. Se usa por ejemplo para pasar nombres de ficheros a un bat que se encarga de borrarlos, moverlos, etc.

Imagen
Sintaxis:if %1 == etiqueta goto etiqueta
Ejemplo:


If %config% Permite la compilación de un archivo config.sys con un archivo por lotes .bat

Imagen
Sintaxis:if %config%
Ejemplo:


If exist Verdadero si y solo si existe el nombre de archivo. El nombre de archivo nombre de archivo puede incluir la unidad y la ruta de acceso.
Sintaxis:if exist nombre archivo o comando

If not El comando sujeto a condición se ejecuta solo si esta es falsa.

Sintaxis:
If [NOT] ERRORLEVEL numero comando
If [NOT] string1==string2 comando
If [NOT] EXIST nombre_archivo comando
If string1==string2
La condición se cumple solo si cadena1 es igual a cadena2. Cadena1 y cadena2 pueden ser cadenas de texto o variables.

If command Especifica el comando a ejecutar si la condición se cumple.
Sintaxis:if command comando.ext

Goto Salta la ejecución del programa hacia la etiqueta indicada

Imagen
Sintaxis: goto etiqueta
Ejemplo:


: Permite crear etiquetas

Imagen
Sintaxis: :etiqueta
Ejemplo:


Pause > nul Suspende la ejecución de comandos y presenta un mensaje para que el usuario presione una tecla para continuar
Sintaxis: pause > nul

Imagen
Ejemplo:

Call Llama un archivo de procesamiento por lotes desde otro igual, sin salir del archivo que hizo la llamada. Es decir, invoca la ejecución de otros archivos como una subrutina.

Imagen
Sintaxis: CALL [di:][via] arch [a]
Ejemplo:


Choice Solicita al usuario que realice una elección en un programa por lotes mostrando un mensaje y deteniéndose momentáneamente para que el usuario elija entre un conjunto de claves de opción del usuario.
Sintaxis: choice [/c [opciones]] [/n] [/cs] [/ttiempoDeEspera/dopción] [/mtexto]
Parámetros
/c opciones
Especifica las claves de opción para el usuario. Cuando se muestran, las claves de opción están separadas por comas, aparecen entre corchetes ([]) y van seguidas de un signo de interrogación. Si no se especifica /copciones, choice muestra [Y, N] de forma predeterminada.
/n
Oculta las claves de opción para el usuario. Si se utiliza esta opción de línea de comandos, aparece el texto del mensaje y las opciones siguen habilitadas.
/cs
Especifica que las claves de opción para el usuario deben distinguir entre mayúsculas y minúsculas. De forma predeterminada, las claves de opción para el usuario no distinguen mayúsculas de minúsculas.
/t tiempoDeEspera /d opción
Especifica que el comando choice debe hacer una pausa durante un número de segundos especificado antes de utilizar una clave especificada como predeterminada. En la siguiente tabla se describen los valores de la opción de línea de comandos /t.ValorDescripción tiempoDeEspera Número de segundos de la pausa. Los valores admisibles están comprendidos entre 0 y 9999. Si se utiliza 0, choice no hace ninguna pausa antes de utilizar la clave especificada como predeterminada. /d opciónEspecifica la opción predeterminada que se utilizará una vez transcurrido el número de segundos de tiempoDeEspera. El carácter que se utilice debe pertenecer al conjunto de opciones especificado en /copciones. Si utiliza esta opción de línea de comandos, debe especificar también /ttiempoDeEspera.
/m texto
Especifica el texto que desea mostrar delante de las opciones. Si incluye un carácter de opción de línea de comandos (/) como parte del texto que aparece delante de las opciones, debe encerrar el texto entre comillas. Si no se especifica ningún texto, choice sólo muestra las opciones.
/?
Muestra la Ayuda en el símbolo del sistema.

Imagen

Ejemplo:

Shift Alterna la posición de los parámetros en el archivo bat. Como ya sabemos, tan solo hay 10 parámetros sustituibles, del %0 al %9. Se puede emplear la orden SHIFT para conseguir el acceso a más de 10 argumentos de la línea de ordenes. Cada vez que se ejecuta SHIFT, el contenido de los parámetros reemplazables es desplazado hacia la izquierda una posición, lo que había en %0 se pierde y el nuevo argumento, si existe, entra en %9, ocupando en %0 lo que había en %1, el %1 tomaría lo que había en %2, etc.
For Se puede repetir un serie de ordenes que usen distintos argumentos utilizando la orden FOR. En el que var es una variable de una sola letra que ira tomando los valores de la lista de argumentos. Los argumentos deben estar separados por espacios en blancos. FOR repetirá la orden tantas veces como argumentos haya. Cada vez que FOR repita, var será sustituido por argumento desplazándose de izquierda a derecha en la lista.
Sintaxis: FOR %%var IN (listas argumentos) DO orden


Entradas relacionadas: