Blog de Juntos: Blog de Juntos

Creación de programas autoextraíbles o instaladores. Segunda parte

Artículo 8.393 veces visto

hace 6 años y 2 meses
Por Ernesto Blanco
Modificado posteriormente el 1 d Mayo dl 2011 a las 1:53 PM

¡Nota importante!

esta entrada se publicó hace más de dos años, por lo que es posible que la información de la que habla ya no sea aplicable, o que las descargas a las que hace mención ya no estén disponibles. En ese caso, puedes contactarnos a través de nuestro correo electrónico, y trataremos en la medida de lo posible facilitarte la información.

Hola de vuelta.

Pues bueno, ¿ya era hora, no? Hace algún tiempo publicamos por aquí la primera parte de este manual, en la cual se explicaba cómo crear un autoextraíble o instalador automático utilizando WinRar, la cual recomiendo haber leído antes de esta.

Dicha entrada solo explicaba la compresión de los archivos y el manejo del módulo SFX, sin embargo, si deseamos que nuestro instalador realice más cosas que el solo extraer archivos, tendremos que utilizar otro método, que es el que pretendo explicar en el presente manual.

Lo principal que necesitaremos será ir creando en el Blog de Notas o cualquier otro procesador de textos simple, un archivo que será el que irá dando las órdenes al momento de que la extracción de nuestros archivos haya concluido, este archivo deberá tener la extensión .BAT

Los archivos con extensión .BAT, o Archivos de Procesamiento por Lotes, son simples archivos de texto con una o varias instrucciones en lenguaje MS-DOS, que, como su nombre lo indica, se van ejecutando de una manera secuencial, es decir, en principio no ejecutan una orden hasta no terminar la anterior

Para más detalles vamos a crear un ejemplo, que quizá no tenga mucha practicidad, pero nos servirá para ir entendiendo cada una de las instrucciones. En nuestro ejemplo supongamos que vamos a formatear nuestro ordenador, y entre otras cosas, deseamos que cuando volvamos a instalar el Mozilla Firefox, éste conserve todas nuestras configuraciones anteriores, tales como extensiones, marcadores, contraseñas, cookies, etc. Así que, nuestro ejemplo hará lo siguiente.

1.         Instalará el Mozilla Firefox de una manera totalmente desatendida al usuario

2.         Restaurará nuestra configuración anterior de una carpeta de respaldo que nosotros mismos creamos antes de formatear

3.         Agregará una línea para que el Firefox se ejecute cada vez que iniciemos el ordenador. Esto obviamente no tiene sentido, sin embargo lo pongo solo con fines explicativos.

4.         Eliminará los archivos temporales que pudiéramos haber generado. Esto es necesario para crear una instalación limpia, lo recomiendo ampliamente.

5.         Mandará reiniciar el ordenador después de haber terminado.

Primeros pasos:

1.         Crear una carpeta en la unidad C: llamada fireauto

2.         Meter en ella el instalador de Firefox.

3.         Renombrarlo a firefox.exe

La gran mayoría de los programas, y Firefox no es la excepción, cuentan con un parámetro que, al pasárselo al ejecutable desde la línea de comandos, o desde un archivo .BAT, realizan una instalación totalmente desatendida, sin intervención del usuario.

Este parámetro algunas veces lo podremos encontrar por medio de MS-DOS, es decir, vamos a Inicio, Ejecutar, escribimos cmd y damos enter. Ya en la línea de comandos nos desplazamos hacia la carpeta que contiene el archivo instalador original y escribimos su nombre seguido del parámetro de ayuda, es decir, un espacio y /? O /help. En otras ocasiones el programa no muestra su ayuda de esta manera y no nos quedará más que googlear hasta encontrar el parámetro desatendido que necesitamos. El Firefox es uno de los programas que no muestran ayuda, así que el parámetro se los diré yo, pero en caso de que la mostrara haríamos lo siguiente para verla:

1.         Inicio, ejecutar, escribir cmd y enter.

2.         Escribir cd\ para irnos a la raíz de la unidad en la que nos encontramos, en este caso sería C:

3.         Escribir CD fireauto para entrar en la carpeta que creamos

4.         Escribir Firefox.exe /? Para obtener la ayuda de los parámetros que se le pueden pasar al ejecutable.

Como ya lo dije, el Firefox no muestra ayuda de esta manera, así que el parámetro que necesitamos lo encontré googleando y es –ms. Por tanto la primera línea de nuestro archivo de texto será la siguiente:

Firefox.exe -ms

Con eso bastaría para que el Firefox se instalara de manera desatendida, ahora vamos con la restauración de la carpeta de respaldo.

1.         Ir a Inicio, ejecutar, escribir %appdata% y dar enter

2.         Entrar en la siguiente secuencia: Mozilla\Firefox

3.         Copiar la carpeta llamada Profiles y el archivo llamado profiles .ini, en la carpeta fireauto con la que estamos trabajando.

Ahora agregaremos a nuestro archivo de texto el siguiente comando:

xcopy Profiles %appdata%\Mozilla\Firefox\Profiles\ /e /Y /q

Donde:

•          Xcopy es un comando que nos permite hacer la copia de una carpeta completa en una determinada ubicación que le indiquemos

•          Profiles es la carpeta de origen, la que deseamos que copie, en caso de que contenga espacios en blanco deberá ir entre comillas.

•          %appdata% es una variable de entorno, que le indica al sistema que debe interpretarla como la carpeta Datos de Programa donde sea que esta se encuentre, así que, en mi caso, %appdata%\Mozilla\Firefox\Profiles\ equivale a C:\Users\Ernesto\AppData\Roaming\Mozilla\Firefox\Profiles\, sin embargo, como esto es diferente en cada ordenador, por ello se utilizan las variables de entorno, si esta ruta tiene espacios en blanco, debe ir entre comillas. Puedes encontrar muchas más variables de entorno aquí.

•          /E es un parámetro que le indica al comando que copie todos los directorios y subdirectorios, aún que haya algunos vacíos.

•          /Y es otro parámetro que sirve para que no se pregunte si se desea sobreescribir algún archivo o directorio existente.

•          /Q es un parámetro utilizado para que no se muestren los nombres de los archivos mientras se están copiando.

Seguido de eso agregamos este otro comando:

copy /y profiles.ini %appdata%\Mozilla\Firefox\

Donde:

•          Copy es un comando que nos sirve para copiar únicamente archivos separados, a diferencia de Xcopy que copia directorios completos.

•          /Y es un parámetro para que no se pregunte si se desea sustituir el archivo en caso de que ya exista.

•          Profiles.ini es el nombre del archivo que copiaremos y

•          %appdata%\Mozilla\Firefox\ es la carpeta donde deseamos sea copiado, si lleva espacios deberá ir entre comillas.

Así que, con lo anterior, ya tendríamos tres líneas en el archivo de texto, y ya estaría restaurada nuestra carpeta con la configuración anterior de Firefox.

Ahora vamos a agregar otro comando para que se cree una entrada en el registro de Windows que haga que Firefox se ejecute cada vez que iniciemos el ordenador. La entrada sería la siguiente:

reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v fireauto /t REG_SZ /d «%programfiles%\Mozilla Firefox\firefox.exe» /f

Donde:

•          Reg.exe es el comando que nos permite hacer modificaciones en el registro de Windows

•          Add es la indicación que le estamos haciendo de que queremos agregar una entrada, si quisiéramos borrar la cambiaríamos por delete

•          HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run es la clave donde deseamos sea agregado el valor que estamos creando, en este caso corresponde a la clave que contiene los programas que son ejecutados al iniciar Windows

•          /v fireauto es el nombre que le estamos asignando al valor creado.

•          /t REG_SZ indica que el valor que estamos creando es un valor de tipo cadena, si quisiéramos crear un valor de DWORD de 32 bits, lo sustituiríamos por REG_DWORD

•          /d «%programfiles%\Mozilla Firefox\firefox.exe» es el parámetro para indicarle el valor que queremos asignarle como contenido a la cadena que creamos, que en este caso es la ruta del ejecutable de Firefox. Cabe hacer notar que aquí se está usando otra variable de entorno, que es %programfiles%, y que corresponde a la carpeta de Archivos de Programa del sistema, sin importar como sea que se llame y donde sea que se encuentre.

•          /F es el parámetro que indica que si esa entrada ya existe sea sobrescrita.

Con esto la entrada estaría agregada y nuestro Firefox se iniciaría siempre al iniciar el equipo, obviamente esa clave solo es con fines explicativos y puede no agregarse o borrarse posteriormente. Ahora toca borrar los archivos temporales que hemos generado, para ello utilizaremos los comandos siguientes:

rd /s /q Profiles

del Firefox.exe

del profiles.ini

del instalar.bat

Donde:

•          RD es el comando utilizado para borrar un directorio completo

•          /S es el parámetro para indicarle que borre todos los directorios y subdirectorios que estén dentro

•          /Q es el parámetro para indicar que no pida ninguna confirmación.

•          Del es el comando para eliminar archivos individuales y

•          Profiles, Firefox.exe, profiles.ini e instalar.bat, son los nombres de los archivos o directorios que se extrajeron en temporales y que deseamos eliminar.

Por último nos quedaría reiniciar nuestro ordenador, el Firefox no requiere el reinicio después de instalar, sin embargo hay programas que sí lo requieren, y por ello dejo el dato. El comando sería el siguiente:

shutdown -r -f -t 15 -c «La instalación ha sido completada, reinicio en 15 segundos»

Donde:

•          Shutdown es el comando que sirve para realizar las acciones de reinicio, apagado, suspensión y demás al sistema.

•          -R es el parámetro que le indica que la acción a realizar es el reinicio.

•          -F le indica al sistema que debe forzar el cierre de las aplicaciones antes de reiniciar.

•          -T 15 es el número de segundos después del cual se hará el reinicio. Esto es útil para dar tiempo a que alguna acción que nos quedó pendiente se realice.

•          -C nos sirve para indicar un comentario del motivo del reinicio al usuario.

Este último comando lo deberán añadir antes del último del, que es el que va a eliminar nuestro instalador, ello es así porque obviamente si el instalador se borra así mismo, ya no ejecutará ningún comando más, suena lógico, ¿no?

Otro comando que también es muy útil es el llamado echo, este nos permite establecer que no se muestren las cosas que el sistema va haciendo, y también nos permite irle mostrando nuestros propios mensajes al usuario, la sintaxis sería la siguiente, lo que va después de las barras no se pone, es solo explicativo:

@echo off || Ocultará los mensajes que se puedan generar de nuestros comandos

@echo on || Mostrará al usuario todos los mensajes que se generen por los comandos

@echo «Instalando Firefox» || Mostramos el mensaje entre comillas al usuario

Así todo esto, nuestro código nos quedaría tentativamente de la siguiente manera:

@echo off

@echo «Instalador automatizado de Firefox y restauración de datos anteriores»

@echo «Instalando Firefox, por favor espera»

Firefox.exe -ms

@echo «Restaurando los archivos de respaldo»

xcopy Profiles %appdata%\Mozilla\Firefox\Profiles\ /e /Y /q

copy /y profiles.ini %appdata%\Mozilla\Firefox\

@echo «Introduciendo valores en el registro de Windows»

reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v fireauto /t REG_SZ /d «%programfiles%\Mozilla Firefox\firefox.exe» /f

@echo «Eliminando archivos de instalación»

rd /s /q Profiles

del Firefox.exe

del profiles.ini

@echo «Instalación completada»

shutdown -r -f -t 15 -c «La instalación ha sido completada, reinicio en 15 segundos»

@echo «Eliminando el instalador»

del instalar.bat

Después de todo esto vamos a guardar este archivo con el nombre instalar.bat, y copiarlo en la misma carpeta de fireauto que creamos para trabajar. Mucho cuidado que la extensión sea .bat, y no .TXT, sino esto no funcionará.

Para aquellos flojitos, jeje, o para quienes quieran comparar su código, ¿a que esto se oye mejor? les dejo el archivo bat que pueden descargar de aquí. Para ver el código den clic derecho o tecla aplicaciones sobre el archivo descargado, y elijan Editar.

Ahora por último seguimos los pasos necesarios para crear el EXE autoinstalable, tal y como se indican en la Primera parte de este manual, escribiendo instalar.bat en el cuadro de edición llamado Ejecutar tras la extracción, y marcando la casilla de descomprimir en una carpeta temporal, además de seleccionar la opción Ocultar el diálogo de inicio, y no añadir ninguna licencia.

Con todo esto tendremos ya nuestro autoinstalable listo para restaurarlo en nuestro ordenador después de la formateada.

De todos los comandos que se utilizan en este manual, se puede ver mucha más información y parámetros escribiendo su nombre en el cmd, seguido del parámetro /? Que como ya lo expliqué es de ayuda.

Obviamente esto es solo una pequeña parte de lo que se puede hacer con el MS-DOS, existen multitud de parámetros, me atrevería a decir que, para cada cosa que se pueda hacer mediante el ambiente gráfico, existe su comando para hacerla desde la consola de MS-DOS, así que el límite será tu imaginación y tus ganas de investigar los comandos que necesites.

En la tercera y última parte de este manual, pondré muchos otros comandos que pueden ser utilizados para crear instaladores, que no precisamente tienen que ser automáticos, pero que sí pueden llegar a tener mucha potencia dependiendo los comandos que utilicemos.

Bueno pues, después de todo este rollo, me despido, y les repito que pueden suscribirse a nuestro Newsletter para recibir todas las novedades del Blog, o bien, hacerse fan en la página de Facebook, seguirnos a través de @juntosblog en Twitter, y todos los medios de contacto que ya hemos compartido con ustedes, además de utilizar el enlace llamado Descargar en PDF, que se encuentra al principio y al final del post, para conservar este manual para futuras referencias.

Muchos saludos y, ¡hasta la próxima!

Si este contenido te fue de utilidad y está en tus posibilidades, considera el realizar una donación.

4 comentarios

Gravatar #1. JOSI
hace 5 años y 3 meses

guau Creo que debo leerlo más despacio porque entendí como crear el de firefox pero no se si podría hacer el de algún otro programa pero exelente gracias ernesto esta info no se encuentra en cualquier blog pero que bueno que si se encuentra en juntos y espero la 3ª parte.
aaaah y tengo una duda desde la primera vez que vicité el blog.
¿que significa, el Botón de pánico. Presione en caso de emergencia o presencia del jefe
porque lo tengo que precionar y quien es el jefe
Solo eso gracias y vendiciones sigan con el blog es de mucha ayuda.

Gravatar #2. allegg
hace 5 años y 3 meses

hola JOSI te recomiendo que oprimas el botón por el cual preguntas, es una buena opción para los que trabajan y tienen un jefe muy extricto jajajajajaja.

Gravatar #3. Beto
hace 4 años y 11 meses

Está bueno lo que se explica acá, pero es algo complicado eso de manipular comandos DOS tan técnicos y limitados en resultados. A mi, por ejemplo, me sirvieron unos programas instaladores gratuitos que encontré acá http://www.youbioit.com/es/article/shared-information/5479/creacion-de-instaladores-gratis

Igual gracias

Gravatar #4. ariel
hace 4 años y 11 meses

amigo ernesto podrias aser auto instalavle el nero 10 porque esta vueno para grabar cd

Comentarios deshabilitados

Se han deshabilitado los comentarios para esta entrada.

Trackbacks deshabilitados

Se han deshabilitado los trackbacks para esta entrada.