Archivos Batch
Para el Módulo SIRL
Archivo batch
Índice
Órdenes de procesamiento por lotes
Hay varias instrucciones especiales para este tipo de archivos:
Call
Esta orden realiza, desde un archivo batch, una llamada a la ejecución de otro archivo del mismo tipo. El primer archivo no finaliza su ejecución al realizar la llamada.
- CALL [unidad_disco:][path]nombre_archivo [parámetros]
Donde:
- [unidad_disco:][path]nombre_archivo es la ruta al archivo batch llamado (debe ser un archivo *.bat) y
- [parámetros] puede ser cualquier tipo de información que necesite el programa llamado que pueda pasarse en línea de comandos.
Choice
Ofrece a los usuarios una entrada de datos para que pueda escoger una opción, y espera hasta que ésta tenga lugar.
- Es un parámetro opcional.
-
- /C[:]letra, especifica las letras que indicarán las opciones del usuario. Si las específicas separadas por comas, aparecerán entre corchetes seguidas de un interrogante. Si no se especifican, se usara YN (si, no) por defecto.
- /N: evita que se muestre el prompt de usuario.
- /S: hace que discrimine entre entrada de letras mayúsculas o minúsculas.
- /T[:]c, nn: introduce un tiempo de espera antes de ejecutar la acción por defecto. Con los siguientes posibles valores:
- c: señala que carácter será usado como opción por defecto después de nn segundos. Solo puedes indicar uno de los caracteres especificados con el modificador /C.
- nn: indica el número de segundos de pausa. Valores entre 0 y 99.
- CHOICE [/C[:]letra] [/N] [/S] [/T[:]c, nn] [texto], puedes especificar un texto que aparecerá antes de la entrada de datos. No hace falta que se entrecomille, salvo que dicha cadena de texto incluya una barra /.
Atención: Los sistemas operativos Windows 2000, Windows xp o posteriores no trabajan con este comando. Sólo lo aceptan por compatibilidad con otros programas.
Echo
Activa o desactiva el volcado de texto del programa (output) a la pantalla:
-
- ECHO [ON|OFF] echo [mensaje] Parámetros
- ON|OFF: activa o desactiva el volcado de texto. Para conocer el estado actual, usar ECHO sin parámetros.
- Mensaje: el texto a mostrar.
-
- echo.
Set
Da valor a una variable general o de entorno. Ejemplo: set nombre=jake parámetros:
-
- set /a Da valor a una variable utilizando operaciones aritméticas
ejemplo: set /a número=2+2 Lo que devolvería el valor 4
-
- set /p Permite la entrada de datos por parte del usuario (prompt), el valor introducido por el mismo define la variable.
Ejemplo: set /p nombre=Introduce tu nombre Esto definiría la variable %nombre% con el valor introducido por el usuario.
Nota: Todo lo que vaya después del signo de = en un set /p se verá en pantalla.
For
Ejecuta una instrucción sobre un grupo de archivos. Puede utilizarse en la línea de comandos o en un archivo bat:
- a) en archivos BAT: FOR %%variable IN (set) DO command [command-parameters]
- b) en línea de comandos: FOR %variable IN (set) DO command [command-parameters]
Parámetros:
-
- %%variable o %variable: representa una variable que será reemplazada por su valor. FOR reemplazará %%variable o %variable con la cadena de caracteres especificados en SET hasta que la instrucción especificada se haya ejecutado sobre todos los archivos. %%variable se emplea con FOR dentro de archivos batch, y %variable desde la línea de comandos.
- (set), especifica uno o más archivos de texto (o cadenas) que se procesaran con el comando. Necesita paréntesis.
- command, la orden que debe ejecutarse sobre cada archivo especificado en SET.
- [command-parameters], parámetros de la instrucción. Podemos emplear la orden con cualquiera de sus parámetros habituales.
Goto
Salta la ejecución del programa hacia la línea indicada: GOTO label
Donde :Label (advierte los dos puntos) es una etiqueta que identifica la línea. 8 caracteres máximo.
If
Permite la ejecución condicional, es decir, sólo se ejecuta la orden si cumple con la condición introducida.
Sintaxis:
- IF [NOT] ERRORLEVEL número comando
- IF [NOT] string1==string2 comando
- IF [NOT] EXIST nombre_archivo comando
Parámetros:
-
- NOT: La instrucción sujeta a condición se ejecuta solo si esta es falsa.
- ERRORLEVEL número: la condición es verdadera sólo si la orden anterior devuelve un código de salida igual o mayor que el especificado.
- command: especifica la orden a ejecutar si la condición se cumple.
- string1==string2: La condición se cumple solo si cadena1 es igual a cadena2. Cadena1 y cadena2 pueden ser cadenas de texto o variables.
- EXIST nombre_archivo: la condición se cumple si existe nombre_archivo.
Pause
Suspende la ejecución de instrucciones y presenta un mensaje para que el usuario presione una tecla para continuar.
pause > nul no muestra mensaje al pausar la ejecución, pero sigue requiriendo que el usuario presione cualquier tecla para poder continuar.
Rem
Línea de comentario. Podemos usar REM o ::
Shift
Alterna la posición de los parámetros en el archivo bat.
Parámetros pasados al script batch
El signo % seguido de un número (del 1 al 8) son los parámetros que se pasaron al invocar nuestro archivo bat. Por ejemplo si tenemos un archivo saludo.bat con la línea echo Hola %1, si lo invocamos tecleando saludo.bat pepe presentará en pantalla Hola Pepe. Se usa por ejemplo para pasar nombres de archivos a un bat que se encarga de borrarlos, moverlos, etc.
El signo %0 representa el nombre del archivo bat en ejecución. El signo %* representa todos los parámetros que se le pasaron.
::cancelamos el echo para que no moleste
@echo off
::mostramos la ruta y el nombre de este bat
echo estas ejecutando el archivo %0
::si se nos pasó algún parámetro, lo mostramos
if not "%1"=="" (
echo pasaste el/los parámetro/s %*
) else (
echo no pasaste ningún argumento al programa
)
::espera que se pulse una tecla para terminar
pause
Para crear nuestro propio batch, es tan fácil como ir al bloc de notas
de Windows, escribir los comandos/códigos deseados, y al terminar hay
que guardar el archivo con el nombre que queramos acabado en .bat.
Tomaremos el ejemplo la frase "Hola Mundo" para crear nuestro propio batch en un par de minutos. Algo muy básico y extremadamente simple de hacer. Abrir el bloc de notas, copiar este código y pegar en el bloc de notas, guardar con el nombre deseado terminado en .bat y ejecutar.
"Hola Mundo"
@echo off
title Mi primer 'batch'
echo Hola Mundo
pause
exit
.
El código básico seria este de arriba.
Al no especificar el código de color mediante su comando, el color por defecto es el color de la consola (cmd.exe), normalmente negro/blanco. Para cambiar el color solo añadiremos el comando "color" seguido de un espacio y el código de dos dígitos, de los cuales el primero corresponde al color de fondo y el segundo a la letra. En ete caso el código de color es 07.
Entonces el código quedaría así:
@echo off
color 07
title Mi primer 'batch'
echo Hola Mundo
pause
exit
.
Para saber los colores disponibles y ver sus respectivos códigos, simplemente abrimos la consola (cmd.exe) y escribimos el comando "color ?" y pulsamos ENTER. Con esto aparecerá la lista de colores y sus respectivos códigos. Solo queda elegir los colores que más nos gusten.
Esto es muy sencillo y básico pero hay infinidad de comandos y funciones los cuales utilizados con inteligencia se pueden obtener multitud de aplicaciones.
Es fundamental e indispensable respetar siempre los espacios, caracteres, comandos, etc, a la hora de escribir cualquier línea de comando/código por simple o básica que sea.
..
.. Fuente: Wikipedia
----------------------------------------------------------------
----------------------------------------------------------------