Como seria un bat, que reconozca la arquitectura del SO

Instalo Programas para Windows de 32 y 64 bits, ruego me indique como seria un bat que me reconozca la Arquitectura del SO y de acuerdo a ello me instale automaticamente el Programa correcto de 32 o 64 bits para no hacerlo de uno en uno.

1 respuesta

Respuesta
2

Creo que puedes basarte en que si existe la carpeta %systemroot%\syswow64  se trata de un equipo con sistema de 64 bits y si no existe será de 32 bits. De modo que el esqueleto del bat podría ser algo así:

@echo off
if not exist %systemroot%\syswow64 goto :32bits
echo el sistema es de 64 bits
goto :eof
:32bits
Echo el sistema es de 32 bits

Disculpe... como seria para completar el bat... una vez reconocido la arquitectura me instale automáticamente ejm: soft.exe x32 y soft.exe x64, gracias por su respuesta.. estoy aprendiendo recién, encontré a uno que lo hizo... pero convirtió el bat en exe y no se que comandos uso, aquí vea.

Aquí se ve mejor el mismo archivo:

He intentado emular lo mejor posible el programita que me pones como ejemplo. Efectivamente una de las razones por las que alguien puede querer convertir un BAT en un EXE es evitar que otras personas utilicen o adapten su BAT.

Mira a ver que más quieres sobre este BAT:

@echo off
CLS
Color b0
title Softpack 2016 - Silverlight 5.1.40620 by Charapita19
for /f "tokens=3,4,5 delims=. " %%a in ('ver') do (
   if "%%a"=="XP" set vers=XP
   if "%%a"=="[Versi¢n" if "%%b"=="5" set vers=XP
   if "%%a"=="[Versi¢n" if "%%b"=="6" set vers=7
   if "%%a"=="[Versi¢n" if "%%b"=="10" set vers=10
)
set bits=64
if not exist %systemroot%\syswow64 set bits=32
echo.
Echo La versi¢n del SO es: Windows %vers% de %bits% bits
echo.
Echo Bienvenido %username%
Echo.
echo ************************* Charapita19 *************************
Echo.
Echo Instalando Silverlight 5.1.40620 de %bits% en %bits%-PC, por favor espere...
Echo.
if "%bits%"=="32" Silverlight_x86.exe&goto :seguir
Silverlight_x64.exe
:seguir
echo ************************* Charapita19 *************************
Echo.
Echo Instalaci¢n de Silverlight 5.1.40620 ha terminado.
Echo.
Echo Para salir presiona una tecla
Pause>nul

Para que la reproducción sea lo más parecida al ejemplo (incluso en el "caption" de la ventana) debes lanzar el BAT desde el explorador de Windows como administrador. Los ejecutables de 32 y 64 bits que quieres lanzar (en este ejemplo serían de instalación del Silverlight, pero habría que ajustar la versión que se indica en el texto) se supone que tienen los nombres Silverlight_x86.exe y Silverlight_x64.exe y que están en la misma carpeta que el bat. Si no fuera así habría que poner el path completo y el nombre adecuado. Si los instalables generan sus propios mensajes de instalación y de fin de instalación se pueden evitar añadiendo un ">nul", tal como he hecho con el último comando PAUSE.

Mira a ver que más necesitas o pídeme las aclaraciones que consideres oportunas.

Sorprendente... bien puesto el nombre todoexpertos... años buscando y preguntando... agradecida con usted Maestro... por ultimo le suplico como seria resumido el bat... lo mas que se pueda editar, que no aparezca ninguna letra, solo me interesa que instale y como puedo agregar lo siguiente para que el soft se instale silencioso: Silverlight_x86.exe /q      ó     Silverlight_x64.exe /q... en que linea agrego el /q...    Muchisisimas gracias por su tiempo y dedicación, son invaluables.

No sé si te entiendo bien. Prefieres que no saque ningún texto, solo que instale lo que haya que instalar "en silencio". Volveríamos entonces a la primera versión, más o menos:

@echo off
if not exist %systemroot%\syswow64 goto :32bits
Silverlight_x64.exe>nul
goto :eof
:32bits
Silverlight_x86.exe>nul

Estoy suponiendo que los ejecutables de instalación tienen esos nombres y están en la misma carpeta que el BAT. También que no hay que contestar a ninguna pregunta. Si lo lanzas desde el Explorador de Windows tal vez no estaría de más mantener el pause>nul después de cada ejecución del instalable porque si no se cerrará la ventana y no podrás saber si ha hecho algo o no lo ha hecho. Y tal vez fuera bueno llevar un log en el que ver los mensajes que se hayan generado. Pero si quieres eso lo vemos luego.

Mira a ver si te funciona y si no es así cuéntame en que sentido falla. Incluso puedes poner una captura de pantalla.

Y me sorprende que te haya resultado sorprendente y que no hayas encontrado en la red información sobre esto. Por ejemplo en: https://todohacker.com/tutoriales/lenguaje-batch 

¡Gracias! 

Entiendo, entonces, que ha funcionado como deseabas y que damos por cerrada la consulta.

Me alegro mucho de haber sido de utilidad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas