Manual de Programacion .Bat
Introduccion
Antes que nada indicaros que se llaman procesos batch. La razon por la que a menudo se alude a ellos como bat es porque el entorno msdos requiere como maximo tres letras en la extension y por tanto los archivos tienen la extension .bat
?Que se puede hacer con ellos?
Pues se puede hacer de forma automatizada todo aquello que se pueda hacer en la consola de msdos.
?Como hago un archivo bat
Pues son texto plano. Quiere eso decir que se pueden escribir en el block de notas, utilidad Edit de msdos o algun editor ascii.
Al guardarlos deben tener la notacion de nombres propia de msdos. Esto es un nombre con maximo 8 letras (espacios y \ no permitidos), luego un punto y la extension que en este caso es obligatoriamente bat.
Para crearlos desde la misma consola puedo utilizar varios sistemas
Sistema 1: mediante la orden copy
copy con: nombre_de_archivo.bat
...
...
comandos
...
...
Ctrl z (se acaba y se graba al pulsar Ctrl Z
Metodo 2 mediante la redireccion
echo 1? linea a insertar >nombre_de_archivo.bat
echo restantes lineas >>nombre_de_archivo.bat
En cualquier caso para modificarlos podemos utilizar la utilidad Edit de msdos (abriendo el archivo concreto y luego grabando los cambios) o el block de notas.
?Que es eso de la redireccion?
Pues al igual que en unix se puede hacer que la salida de un comando sirva como entrada de otro.
Para ello se utilizan los operadores < y > que sirven para indicar que salida debe ir a que lugar
Por ejemplo si yo le doy la orden DIR, esta ira por defecto a la pantalla (dispositivo CON), pero puedo redirigir la salida a la impresora por defecto (dispositivo PRN) de la siguiente forma
dir >prn
Que son los filtros
Los filtros son ordenes que sirven para formatear la salida del comando de acuerdo a nuestros intereses. Se utilizan mediante la barra vertical (Alt 124).
El filtro SORT sirve para ordenar la salida
dir | sort
El filtro MORE sirve para pausar la salida cada pantalla para que pueda ver todos los datos de salida con tranquilidad. Pasa de pantalla a pantalla al pulsar una tecla
dir | more
?Como puedo seleccionar varios archivos
Para ello y teniendo en cuenta que los nombres de los archivos deben cumplir la notacion de msdos (8 letras sin espacios como maximo, luego un punto y tres letras como maximo de extension) se pueden utilizar los llamados comodines.
* Equivale a varios caracteres
? equivale a un solo caracter.
Ejemplos
comando *.cfg -> seleccionar todos los archivos que tengan la extension cfg
comando a*.cfg -> seleccionar todos los archivos que comienzen por a y tengan la extension cfg
comando a*b.cfg -> seleccionar todos los archivos que comienzen por a, acaben por b y tengan la extension cfg
comando *asa*.cfg -> seleccionar todos los archivos que contengan 'asa' y tengan la extension cfg
comando c?asa.cfg -> seleccionar todos los archivos que contengan una C, luego un caracter cualquiera y luego 'asa'. Debe tener tambien la extension cfg
comando c?b*.* -> seleccionar todos los archivos que empiezen por c, tengan un caracter cualquiera, luego una b y cualquier extension
comando *.b?t -> seleccionar todos los archivos que tengan una extension que empieze por b, luego un caracter cualquiera y luego una t.
?Que son las trayectorias o paths?
La trayectoria es el nombre completo de un archivo e indica la situacion exacta de un archivo y su nombre.
Si digo que el archivo se llama leeme.txt indico su nombre, pero nada mas. Se da por supuesto que se encuentra en el directorio actual.
Si digo c:\leeme.txt indico que el archivo que me interesa se llama leeme.txt y se encuentra en el directorio raiz de C.
Dado que en msdos no se admiten nombres largos (mas de 8 letras) ni espacios, cuando quiero utilizar un nombre de windows en msdos debo saber que este sera reconvertido a su nombre corto. Este se obtiene anadiendo los seis primeros caracteres validos del nombre, luego el signo ~ (alt 126) y luego un numero.
De esta forma un archivo que se encuentre en Mis documentos en win98 tendra el path
c:\misdoc~1\leeme.txt
Tambien se pueden utilizar (mientras las comillas para delimitar el nombre
"c:\Mis Documentos\leeme.txt"
Pero esto solo vale cuando se utiliza msdos como consola (no cuando se inicia windows 98 en modo msdos)
Observese que se utiliza la barra contraria a la de linux/unix para especificar subcarpetas o subdirectorios
Esta seria la trayectoria de mimusica.mp3
c:\misdoc~1\mi~1\mimusica.mp3
Que equivale a
"c:\Mis Documentos\Mi Musica\mimusica.mp3"
Cuales son los nombres de dispositivos
La pantalla se llama CON. Por eso si redirigo algo a CON lo estoy sacando por pantalla.
La impresora por defecto se llama PRN
La primera impresora se llama Lpt1 y las demas Lpt2, Lpt3 (una en cada puerto paralelo instalado en el sistema). Hasta donde yo se no hay posibilidad de llegar a USB si no es la impresora por defecto.
Como se les llama a las unidades logicas
Siempre es una letra seguida del signo dos puntos.
A: = disquetera
B: = reservada para segunda disquetera
C: = primera particion (normalmente es la que arranca)
D: = segunda particion (generalmente el cdrom)
Por eso si se crea una unidad logica mediante netbios en windows, esta puede tener un nombre msdos para poder acceder a ella desde la consola. La letra que se asigne no puede corresponder a una unidad logica existente.