Hoy me toco meterle mano al bisabuelo de Powershell: Batch.
Me pidieron que un script viejo no se ejecute en versiones Server de windows, y como no tengo manera de evitar la ejecución, tuve que volver a hacer magia.
Lo que hace este pequeño pedazo de código es chequear la versión de windows, verificar si es una versión “normal” de windows y si es así, vuelve a la etiqueta SIGUE. Simple y sencillo.
:CHEQUEASERVER | |
REM Se fija que sea windows XP, Vista, 7 u 8. | |
REM Si no es, no instala | |
systeminfo | find "Microsoft Windows" > %TEMP%\osname.txt | |
FOR /F "usebackq delims=: tokens=2" %%i IN (%TEMP%\osname.txt) DO set vers=%%i | |
echo %vers% | find "Windows 7" > nul | |
if %ERRORLEVEL% == 0 goto SIGUE | |
echo %vers% | find "Windows Vista" > nul | |
if %ERRORLEVEL% == 0 goto SIGUE | |
echo %vers% | find "Windows XP" > nul | |
if %ERRORLEVEL% == 0 goto SIGUE | |
echo %vers% | find "Windows 8" > nul | |
if %ERRORLEVEL% == 0 goto SIGUE | |
REM Si llego hasta aca abajo, no es | |
REM win xp, vista, 7 ni 8. Por descarte | |
REM es windows server, y no se instala. | |
:FIN |