Programación BATCH Avanzada

Temario.
1.- Variables y Argumentos.
2.- Imprimir caracteres de comandos.
3.- Algunas otras variables de Entorno.
4.- IF
5.- FOR
6.- Funciones
7.- Includes
8.- Misc
9.- EOF


Variables y Argumentos
El manejo de variables en batch, es muy flexible., y este nos permite hacer desde operaciones matematicas, hasta seleccionar ciertas partes de una variable, asi como reemplazar  cadenas de texto, y obtener archivos.. y sus propiedades, la fecha, hora, generar numeros aleatorios, entre otros.
Los argumentos que recibe un batch, son recibidos de la siguiente forma:
batch argumento1 dos tres
hara que:
%0 = batch
%1 = argumento1
%2 = dos
%3 = tres
en %0 se guardara, el nombre del archivo.
Podemos borrar el contenido de un parametro con el comando shift:

Codigo:

@echo off
echo %0 %1 %2 %3
shift /1
echo %0 %1 %2 %3

al llamar:

Codigo:

C:Documents and SettingsAdministradortempcurso>astring 123 456 789
astring 123 456 789
astring 456 789

shift borro, el primer argumento.
Tambien contamos con los siguientes modificadores para los archivos:

Codigo:

       %~f1        – regresa la ruta y el archivo de %1.
%~d1        – regresa la letra de la unidad de %1.
%~p1        – regresa solo la ruta del archivo %1.
%~n1        – regresa solo el nombre de archivo %1.
%~x1        – regresa solo la extension del archivo %1.
%~s1        – regresa solo la ruta, con directorios, con nombres cortos del archivo %1.
%~a1        – regresa los atributos del archivo.
%~t1        – regresa la hora/fecha del archivo %1
%~z1        – regresa el tamaño del archivo %1.

por ejemplo:
en un directorio donde tenemos:

Codigo:

C:Documents and SettingsAdministradortempcurso>dir
El volumen de la unidad C no tiene etiqueta.
El numero de serie del volumen es: A057-553B
Directorio de C:Documents and SettingsAdministradortempcurso
24/07/2006  12:25a      <DIR>          .
24/07/2006  12:25a      <DIR>          ..
24/07/2006  12:25a                   6 archivo.txt
1 archivos              6 bytes
2 dirs  401,715,161,088 bytes libres

este batch:

Codigo:

@echo off
echo Ruta al archivo: %~f1
echo Disco: %~d1
echo Solo ruta: %~p1
echo Nombre: %~n1
echo Extension: %~x1
echo Ruta Corta: %~s1
echo Atributos: %~a1
echo Fecha: %~t1
echo Tamaño: %~z1

(more…)