Menubar

domingo, 5 de junio de 2016

¿Cómo crear un instalador de programas usando unicamente un archivo batch (.bat)?

Por J. Manuel Mar H. Editar
Compartir en Facebook
Compartir en Twitter
Compartir en MeWe
Enviar a Reddit
Guardar en Internet archive
Guardar en  archive.today
Enviar por email
Archivo .bat
  Instalar un programa en una pc no debería ser un problema (al menos en teoría). Afortunadamente la mayoría de los programas incluyen una rutina para instalarse a si mismo, pero si no, este útil código fuente puede ayudarte.


  Una manera simple de instalar un programa en recurrir a una rutina batch, para ello comparto este código fuente de un instalador real, pueden probarlo y mejorarlo a su gusto. Para ello vamos a instalar el contenido de un archivo .7z llamado "oficios", el cual contiene todo el programa a instalar en el equipo final.

Publicidad


  El programa a instalar se encuentra en una carpeta compartida que pueden ver todos los equipos, para pruebas yo he usado la carpeta "D:\Datos_Perfil\97016178\Desktop\escritorio datos\SharpDevelop Projects\instaladores\oficios", pero bien puede usarse cualquiera, la la única condición es que pueda ser accedida por el archivo BAT. Del mismo modo debemos crear en la carpeta origen del instalador la subcarpeta plugins con el siguiente contenido:
  • 7-Zip
  • shortcut.vbs
Donde 7-Zip es la versión portable de 7-Zip http://portableapps.com/apps/utilities/7-zip_portable
Y shortcut.vbs un script adicional que tambien se anexa en este tema.

Contenido del archivo setup.bat

Rem Thanks to 7-Zip documentation
Rem Thanks to https://stackoverflow.com/questions/7170683/copy-all-files-and-folders-from-one-drive-to-another-drive-using-dos-command-pr
cls
cd c:\
c:
mkdir systems
cd systems
mkdir oficios
cd oficios
rmdir prod /S /Q
rmdir loader /S /Q
mkdir prod
mkdir loader
xcopy "D:\Datos_Perfil\97016178\Desktop\escritorio datos\SharpDevelop Projects\instaladores\oficios\*.*" "c:\systems\oficios\loader" /h/i/c/k/e/r/y
cd prod
"c:\systems\oficios\loader\plugins\7-zip\7z.exe" x -t7z "c:\systems\oficios\loader\oficios.7z"
"c:\systems\oficios\loader\plugins\shortcut.vbs"
del c:\systems\oficios\loader\oficios.7z /F /Q
del c:\systems\oficios\loader\setup.bat /F /Q
del c:\systems\oficios\loader\plugins\shortcut.vbs /F /Q
exit

Contenido del archivo shortcut.vbs

'#### Purpose: Create a easy installer
'#### Created date: 11/04/2016
'#### Created by username: Juan Manuel Mar Hdz.
'#### Last modified date: 11/04/2016
'#### Last modified username: Juan Manuel Mar Hdz.
'#### Thanks to http://ss64.com/vb/shortcut.html
'#### Thanks to http://ss64.com/vb/special.html
'#### Thanks to http://javascripts.astalaweb.com/Ayuda/html/vsconmsgbox.asp
'#### Thanks to https://stackoverflow.com/questions/6489941/error-in-on-error-statement


Dim desktop



On Error Resume Next



  Err.Clear



  Set objShell = WScript.CreateObject("WScript.Shell")

  desktop = objShell.SpecialFolders("Desktop")
  Set lnk = objShell.CreateShortcut(Trim(desktop) & "\oficios.lnk")


  lnk.TargetPath = "c:\systems\oficios\prod\oficios.exe"

  lnk.Arguments = ""
  lnk.Description = ""
  lnk.IconLocation = "c:\systems\oficios\prod\oficios.exe, 0"
  lnk.WindowStyle = "1"
  lnk.Save


  Set lnk = Nothing

  
  If Err.Number = 0 Then
    MsgBox "¡Instalación exitosa!", 64, "Instalador" 'Information
  Else
    MsgBox " Ocurrió el error '" & Err.Description & " al crear el acceso directo para la aplicación...", 16, "Instalador" 'Critical
  End If

Como pueden ver, el archivo .bat crea en la máquina destino una carpeta donde va a contenerse el programa final, copia todo el contenido de la carpeta origen, descomprime el archivo .7z (mediante 7-Zip), arranca el archivo shortcut.vbs para crear un acceso directo en el escritorio hacia el programa final, borra los archivos extra y listo.

Procedencia de las imágenes:
File: Icono archivo BAT
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9-vGzl1Jg5jQAiy10dT7nQPaJiYX-PNqyvR6t142YYhxBxPPQENbxj-4tPrp1AHWQ4AXmojg6r7-vIFNl8IvoFCbtWCtxVde00HGu2w2iXngJB8Vcu8hdTathpeYLOoPBRzbIH-P1tGxp/s1600/bat.png

¿Te gustó este post?, entonces si lo deseas puedes apoyarnos para continuar con nuestra labor, gracias.



Licencia de Creative Commons Esta obra está bajo una licencia de Creative Commons Reconocimiento 4.0 Internacional, haga clic aquí para conocer más detalles.


Compartir:



Danos tu voto
Comunidad Kynamio
Directorio de blogs, ¡agrega el tuyo!
Programas para el mantenimiento de Windows
Blog de seguridad informatica