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 nos permite hacer desde operaciones matemáticas,
hasta seleccionar ciertas partes de una variable, así comoreemplazar cadenas de texto, obtener archivos
y sus propiedades, la fecha, hora, generar números aleatorios, etc.
Los argumentos que recibe un batch son recibidos de la siguiente forma:
batch argumento1 dos tres
hará que:
%0 = batch
%1 = argumento1
%2 = dos
%3 = tres
en %0 se guardará el nombre del archivo.
Podemos borrar el contenido de un parámetro con el comando shift:
Código:
@echooff
echo %0 %1 %2 %3
shift /1
echo %0 %1 %2 %3
al llamar:
Código:
C:\Documents and Settings\Administrador\tempcurso>astring 123 456 789
astring 123 456 789
astring 456 789
shift borró el primer argumento.
También contamos con los siguientes modificadores para los archivos:
Código:
%~f1
%~d1
%~p1
%~n1
%~x1
%~s1
%~a1
%~t1
%~z1
-
regresa
regresa
regresa
regresa
regresaregresa
regresa
regresa
regresa
la ruta y el archivo de %1.
la letra de la unidad de %1.
solo la ruta del archivo %1.
solo el nombre de archivo %1.
solo la extensión del archivo %1.
solo la ruta, con directorios, con nombres cortos del archivo %1.
los atributos del archivo.
la hora/fecha del archivo %1
el tamaño del archivo %1.
por ejemplo:
en un directorio donde tenemos:Código:
C:\Documents and Settings\Administrador\tempcurso>dir
El volumen de la unidad C no tiene etiqueta.
El número de serie del volumen es: A057-553B
Directorio de C:\Documents and Settings\Administrador\tempcurso
24/07/2006
24/07/2006
24/07/2006
12:25a
12:25a
12:25a
6
1 archivos
2 dirs 401,715,161,088
.
..
archivo.txt
6 bytes
bytes libres
este batch:
Código:
@echo offecho Ruta al archivo: %~f1
echo Disco: %~d1
echo Solo ruta: %~p1
echo Nombre: %~n1
echo Extensión: %~x1
echo Ruta Corta: %~s1
echo Atributos: %~a1
echo Fecha: %~t1
echo Tamaño: %~z1
llamándolo analiza.bat, saca el siguiente resultado:
Código:
C:\Documents and Settings\Administrador\tempcurso>analiza archivo.txt
Ruta al archivo: C:\Documents andSettings\Administrador\tempcurso\archivo.txt
Disco: C:
Solo ruta: \Documents and Settings\Administrador\tempcurso\
Nombre: archivo
Extensión: .txt
Ruta Corta: C:\DOCUME~1\ADMINI~1\TEMPCU~1\archivo.txt
Atributos: --a-----Fecha: 24/07/06 12:25a
Tamaño: 6
También podemos usar varias propiedades, por ejemplo, este código:
Código:
@echo off
echo %~anxt1
saca este resultado:
Código:
C:\Documents andSettings\Administrador\tempcurso>analiza archivo.txt
--a------ 24/07/06 12:25a archivo.txt
Si lo que recibimos no es un archivo sino una cadena de texto, que contiene más de una palabra, se debe
poner entre comillas, algo así:
astring "parámetro de varias letras"
al obtenerlo, en %1, lo recibimos con comillas, pero si usamos:
Código:
@echo off
echo Con Comillas: %1
echo Sin Comillas: %~1
saca este resultado:Código:
C:\Documents and Settings\Administrador\tempcurso>astring "parámetro de varias letras"
Con Comillas: "parámetro de varias letras"
Sin Comillas: parámetro de varias letras
Y por ejemplo, si queremos obtener todos los argumentos, se usa:
%*
es decir:
Código:
@echo off
echo Argumentos: %*
al ejecutar:
astring parámetro de varias letras
nos regresa:
Código:
C:\Documents andSettings\Administrador\tempcurso>astring parámetro de varias letras
Argumentos: parámetro de varias letras
Para asignar a una variable el valor de algo escrito por el usuario puedes usar:
set /P variable=
por ejemplo:
Código:
@echo off
echo ¿Cómo te llamas?
set /P miva=
echo Tú te llamas %miva%
hará algo así:
Código:
C:\Documents and Settings\Administrador\tempcurso>astring
┐Como te...
Regístrate para leer el documento completo.