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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
: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 |