Tuto Batch : if/else determiner Windows Version

Partie 1 : Déterminer sa version de Windows

Récupérer les donnés essentiels de son système d’exploitation Windows.

Cela fait quelques temps que je n’ai pas rédigé d’article, je vais présenter via un code batch comment récupérer des informations essentielles de son système d’exploitation avec une gestion d’erreurs et une mise en forme graphique, certe basique, mais cela rend le tout plus agréable ! ;)

J’essaie autant que possible que le code soit compréhensible via les commentaires.
Ce code vous génère suivant votre version de Windows un dossier avec en sortie la configuration de votre système. ( De Xp à Seven )

Vous pouvez tester ce morceau de code directement en copier/coller. (Nouveau document texte dans le bloc note =>Enregistrez-sous => test_ver.bat par exemple)

@echo off
ver | findstr /i "5\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_2000
ver | findstr /i "5\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_XP
ver | findstr /i "5\.2\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_2003
ver | findstr /i "6\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_Vista
ver | findstr /i "6\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_Win7
// qui informe l'utilisateur
goto warn_and_exit

:ver_Win7
echo OS Version: Windows 7
goto end

:ver_Vista
echo OS Version: Windows Vista
goto end

:ver_2003
echo OS Version: Windows Server 2003
goto end

:ver_XP
echo OS Version: Windows XP
goto end

:ver_2000
echo OS Version: Windows 2000
goto end

:warn_and_exit
echo Machine OS cannot be determined.

:end
pause

Ce même code analysé et commenté.

@echo off
// Teste depuis l'identifiant de version
// Je rappel lorsque %errorlelvel% est égal à 0 c'est que la condition est vraie
// EQU represente en batch : égal à
ver | findstr /i "5\.0\." > nul
// On peut traduire la ligne ci-dessous par :
// SI la variable ERRORLEVEL est égal à 0 (donc vrai) on reprend la sequence au marqueur ver_2000
// Representé plus bas par :ver_2000
// Si au contraire la condition est fausse on continue le traitement
// On constate ici que chaque version est traitée une par une jusqu'a trouver "vraie"

IF %ERRORLEVEL% EQU 0 goto ver_2000
ver | findstr /i "5\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_XP
ver | findstr /i "5\.2\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_2003
ver | findstr /i "6\.0\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_Vista
ver | findstr /i "6\.1\." > nul
IF %ERRORLEVEL% EQU 0 goto ver_Win7
// Le traitement d'erreure intervient à ce niveau
// si aucune condition n'est vraie ci-dessus on se rend au marqueur warn_and_exit
// qui informe l'utilisateur
goto warn_and_exit

:ver_Win7
echo OS Version: Windows 7
goto end

:ver_Vista
echo OS Version: Windows Vista
goto end

:ver_2003
echo OS Version: Windows Server 2003
goto end

:ver_XP
echo OS Version: Windows XP
goto end

:ver_2000
echo OS Version: Windows 2000
goto end

:warn_and_exit
echo L OS ne peut être trouvé

:end
pause

Ceci était la p//ière partie pour déterminer dans vos scripts la version de l’OS.
C’est très important suivant l’utilisation que vous en faite, cela permet une fois la version déterminée d’adapter vos scripts en fonction de la réponse.

Pour illustrer clai//ent, cela permet d’adapter les chemins corrects au scripts, passer de c:\users sous vista à c:\documents and settings sous XP par exemple ;)

Laisser un commentaire