El lenguaje batch está formado por una serie de comandos MS-DOS que son guardados en un archivo de procesamiento por lotes normalmente con formato .bat. Este lenguaje nos puede servir para crear programas sencillitos usando simplemente programas de edición de texto como el bloc de notas.

Este lenguaje es muy famoso también porque era usado hace tiempo por los hackers para crear algunos virus muy sencillos pero a la vez de los peores, como por ejemplo uno que formatea el ordenador o que hace que se reinicie sólo al encenderse, pero estos virus ya no funcionan porque son bloqueados facilmente por windows, por lo que no aconsejo aprender este lenguaje con tal finalidad, sino para aprender programación y crear programas de utilidad.

Instalación desatendida con batch

Bueno ahora que ya sabemos que es un batch, empezemos con la creacion de nuestro propio archivo .bat siguiendo estos simples pasos:

1. Abrimos el bloc de notas
2. Damos clic en Archivo y luego en Guardar como...
3. En el cuadro de dialogo buscamos la carpeta donde vamos a guardar el archivo
4. En Tipo seleccionamos Todos los archivos
5. En Nombre le pondremos Instalar.bat y damos clic en guardar

Ahora empezamos a agregar instrucciones a nuestro archivo para que instale las aplicaciones que utilizaremos, pero antes de dar la primer instruccion de instalacion personalizemos un poco nuestra "aplicacion" instaladora.

Los archivos .bat son archivos que la linea de comandos interpreta y ejecuta una a una las ordenes que este contenga, entonces al ejecutar un archivo .bat lo primero que se abre es una instancia de la consola de comandos conocida como simbolo del sistema (esa ventanita de fondo negro y letras blancas que muchos ya no usan) y empieza a ejecutar una a una las ordenes. Vamos a personalizar esta ventanita para que a la hora de instalar se vea mas bonito el proceso.

desatendido


Personalizando nuestra aplicacion

El tamaño de la ventana
Primeros cambiemos el tamaño de la ventana, para esto utilizaremos el comando MODE acompañado del dispositivo a modificar en esta caso sera la consola(con) y especificaremos el numero de lineas y columnas que mostrara la consola, asi que demosle un tamaño de 50 columnas por 2 lineas, la orden queda de la siguiente forma:

mode con cols=50 lines=2



Si guardamos y ejecutamos veremos como una pequeña ventana se abre y se cierra en un segundo, esto es por que los comandos de ms-dos al terminar su ejecucion se cierra automaticamente, y como hacemos para ver el resultado de la linea anterior, facil agregaremos una pausa al final del archivo para que no salga hasta que nosotros se lo indiquemos, para esto usamos el comando pause, entonces nuestro archivo debe contener 2 lineas, asi:

mode con cols=50 lines=2
pause



Ahora guardamos y ejecutamos.

El resultado es que se abre una pequeña ventana donde se muestra la ruta desde donde se ejecuta la consola(la ruta completa donde esta alojado nuestro archivo), despues el comando invocado (pause) y por ultimo un texto que dice "Presione cualquier tecla para continuar..."


El titulo de la aplicación

Bueno ahora que ya personalizamos el tamaño de la ventana y que ya pudimos evitar que la ventana se cierre, continuemos personalizando nuestra "aplicacion" pongamosle un titulo como Instalador, este titulo se mostrara en el titulo de la ventana y en lugar de salir la ruta completa donde esta nuestro archivo saldra el texto que nosotros lo pongamos para esto usaremos el comando title de la siguiente forma:

title Instalador



Esta linea es aconsejable ponerla antes de las otras ordenes para una correcta ejecucion de los comandos ya que si colocamos este comando despues del de pausa el titulo se cambira hasta que pulsemos una tecla y nosotros lo queremos desde que se ejecute nuestra aplicacion, entonces hay que ponerlo sino como la primer linea si antes de que se ejecute cualquier otro comando, como gusto personal lo colocare despues del comando mode a forma de estructura y quedaria asi:

mode con cols=50 lines=2
title Instalador
pause




Los colores de la aplicación

Ahora personalicemos un poco mas nuestra aplicacion cambiando los colores de la misma, esto se hace tambien muy facil con una sola orden y argumentos, el comando que utilizaremos para hacer esto es el comando color. Los atributos de este comando son numeros hexadecimales es decir numeros del 0 al 9 y letras de la A a la F, cada numero y letra es un color diferente:

0=Negro
1=Azul
2=Verde
3=Aguamarina
4=Rojo
5=Purpura
6=Amarillo
7=Blanco
8=Gris
9=Azul Claro
A=Verde Claro
B=Aguamarina Claro
C=Rojo Claro
D=Purpura Claro
E=Amarillo Claro
F=Blanco Brillante

El primer argumento sirve para establecer el fondo de la consola y el segundo para establecer el color de la letra, en mi caso utilzare el color de las BSoD es decir un fondo azul claro con letras blancas (9f), el comando queda de la siguiente forma:

color 9f



En mi caso colocare esta linea despues del comando title para seguir con la estructura del programa como se va explicando y el texto del archivo debe ser algo parecido a esto:

mode con cols=50 lines=2
title Instalador
color 9f
pause




Limpiando la pantalla

Bueno, ya personalizamos nuestra aplicacion ahora limpiemos la ejecucion, si se han dado cuenta cuando ejecutas el archivo aparecen 2 lineas, una con la ruta desde donde estamos ejecuntando el archivo seguido del comando pause y otra con el texto "Presione una tecla para continuar...", esto es logico ya que es la forma en que trabajo DOS y si tuvieramos mas grande la ventana tambien veriamos los comandos title y color, pero obvio esto es poco estetico y hace que se vea mal nuestra aplicacion para evitar que cada linea de comando se "imprima" en la pantalla y solo veamos el resultado utilizaremos el comando echo y el parametro off de la siguiente forma:

echo off



Con esto evitamos que cada linea de comando que se ejecute se muestre en pantalla, para evitar que el comando echo se muestre colocaremos una arroba(@) antes del comando echo y esto evitara que se "imprima" en el dispositivo de salida, el comando debe quedar de la siguiente forma:

@echo off



Y dado que esta orden evita que salgan los comandos en la pantalla debemos colocarlo al principio de todo quedando nuestro archivo de la siguiente forma:

@echo off
mode con cols=50 lines=2
title Instalador
color 9f
pause



Guardamos el archivo y lo ejecutamos el resultado deberia ser solo el texto "Pulse una tecla para continuar..."

instalar


Agregando programas al instalador

Bueno ya creamos la interfaz de nuestra aplicacion que instalara nuestros programas y hasta ahora no hemos visto que ejecute algun programa, hagamos una pequeña prueba para ver como trabaja nuestro archivo .bat con archivos .exe y ejecutemos un programa que viene incluido en nuestro windows, la calculadora, y esto es muy facil solo pongamos en nuestro archivo el comando calc antes del comando pause y veamos que pasa, el contenido del archivo debe ser como este:

@echo off
mode con cols=50 lines=2
title Instalador
color 9f
calc
pause



Bueno con esto comprobamos que nuestro archivo .bat puede ejecutar archivos .exe desde la consola de ms-dos, pero como supo que debia ejecutar la calculadora solo con el comando calc, pues facil, windows configura unas ruta de acceso a sus archivos y el prompt o linea de comandos tambien hace uso de estas rutas, estas rutas se conocen como paths y windows las dirige a C:WindowsSystem32 que es donde estan todos sus comandos y archivos .exe, y por eso cada vez que tecleamos algun comando en la consola se puede ejecutar, por que todos estan alojados en esa carpeta y es el primer lugar donde busca a menos que nosotros le especifiquemos una ruta distinta.


Instalando WinRar

Vamos a agregar la primer aplicacion a instalar en nuestro sistema: el winrar, para eso primero debemos tener el instalador del mismo que se puede descargar desde http://www.winrar.es, el nombre del instalador aunque no es muy largo podemos cambiarlo por uno mas corto o dejarlo como esta, en mi caso lo nombrare Winrar.exe y para ejecutarlo desde nuestro archivo .bat solo hay que colocar el nombre del archivo y listo (si el archivo a ejecutar no esta en la misma carpeta que nuestro archivo bat hay que especificar la ruta hasta el archivo), la orden seria:

Winrar



Ya integrada en nuestro archivo quedaria de la siguiente forma:

@echo off
mode con cols=50 lines=2
title Instalador
color 9f
Winrar
pause



Guardamos y ejecutamos nuestro archivo .bat y veamos que pasa.

Wow!!! el UAC nos pidio permiso de ejecucion, obvio le damos que si y se abrio el instalador del winrar, epa pero no se supone que debia instalarse de forma desatendida? Cierto, pero hay que modificar un poco nuestra linea del ejecutable y utilizar parametros para que esto sea asi, cada programa tiene los suyos aunque la mayoria ocupan los del windows installer y todos los podemos encontrar en internet.


Instalando WinRar Desatendido

Bueno la instalacion desatendida del winrar es una de las mas faciles de hacer solo hay que agregar el parametro /s al ejecutable y listo, la linea de comando debe quedar asi:

Winrar /s



Guardamos, ejecutamos y veamos que pasa.

Mmmm, salio la ventana y me pidio que pulsara una tecla y nada mas, bueno para comprobar que se instalo winrar hagamos click en "inicio" luego en "todos los programas" y ahi deberia aparecer ya la carpeta de winrar, solo abramos la carpeta y ejecutemos el winrar y woala el winrar se abre y para instalarlo no necesitamos hacer nada, facil? mucho, ahora solo necesitamos conocer los parametros para la instalacion desatendida de los demas programas que vayamos a incluir en nuestro instalador y agregarlos consecutivamente, si se quiere tener un control de las instalaciones y saber si se estan instalando podemos agregar un pause a cada instalador para ver los errores que este pudo tener.

El Codigo completo de este archivo .bat de ejemplo es el siguiente:

@echo off
mode con cols=50 lines=2
title Instalador
color 9f
Winrar /s
pause



Y aunque se que en el mercado existen programas para hacer un WPI(Windows Post Instalation) con este metodo no necesitan un programa extra ya que solo con el bloc de notas puede hacerse y con muy pocas lineas de comandos y aun faltan mas opciones de personalizacion de nuestro archivo pero esas despues las publico, espero que les sirva este post.


batch