(Dernière modification le 28 mai 2010 à 21:23)

Si vous utilisez des scripts batchs au sein de votre réseau de PC, il peut être utile suivant la version de Windows d’agir différemment. En effet, une fonction système qui fonctionne sur Windows XP peut ne pas fonctionner sur Windows 98 (et vice-versa).

Aussi étonnant que cela puisse paraître il n’existe pas de variable d’environnement permettant de récupérer cette information sur la version ! Seule la variable %OS% est définie mais ne permet pas différencier les différents OS bâtis sur les noyaux NT (tels que 2003, 2000, XP), de plus elle n’est pas présente sur tous les OS Microsoft.

Je vous propose donc une solution que j’ai du mettre en place dans le cadre d’un script qui, je l’espère, vous servira à votre tour.

Récupérer la version de l’OS dans une variable :

@echo off
cls
color 5F
REM Detection de l'OS (source blogmotion.fr)
ver | find /i "version 6.1." > nul
if %errorlevel%==0 set $VERSIONWINDOWS=Windows 7
ver | find /i "version 6.0." > nul
if %errorlevel%==0 set $VERSIONWINDOWS=Windows Vista
ver | find /i "version 5.1." > nul
if %errorlevel%==0 set $VERSIONWINDOWS=Windows XP
ver | find /i "version 5.2." > nul
if %errorlevel%==0 set $VERSIONWINDOWS=Windows 2003
ver | find /i "Windows 2000" > nul
if %errorlevel%==0 set $VERSIONWINDOWS=Windows 2000
ver | find /i "Windows NT" > nul
if %errorlevel%==0 set $VERSIONWINDOWS=Windows NT
ver | find /i ">Windows ME" > nul
if %errorlevel%==0 set $VERSIONWINDOWS=Windows ME
ver | find /i "Windows 98" > nul
if %errorlevel%==0 set $VERSIONWINDOWS=Windows 98
ver | find /i "Windows 95" > nul
if %errorlevel%==0 set $VERSIONWINDOWS=Windows 95

echo OS : %$VERSIONWINDOWS%
echo.(source du script: http://blogmotion.fr)
echo.

Voila le résultat du script (vous devinerez à partir de quel OS je l’ai lancé) :

Diriger l’exécution dans un label suivant l’OS :

@echo off
ver | find /i "version 6.1." > nul
if %errorlevel%==0 goto winseven
ver | find /i "version 6.0." > nul
if %errorlevel%==0 goto winvista
ver | find /i "version 5.1." > nul
if %errorlevel%==0 goto winxp
ver | find /i "version 5.2." > nul
if %errorlevel%==0 goto win2003
ver | find /i "Windows 2000" > nul
if %errorlevel%==0 goto win2000
ver | find /i "Windows NT" > nul
if %errorlevel%==0 goto winnt
ver | find /i ">Windows ME" > nul
if %errorlevel%==0 goto winme
ver | find /i "Windows 98" > nul
if %errorlevel%==0 goto win98
ver | find /i "Windows 95" > nul
if %errorlevel%==0 gotowin95

:winseven
REM Entrez ici vos commandes
goto end

:winvista
REM Entrez ici vos commandes
goto end

:winxp
REM Entrez ici vos commandes
goto end

:win2003
REM Entrez ici vos commandes
goto end

:win2000
REM Entrez ici vos commandes
goto end

:winnt
REM Entrez ici vos commandes
goto end

:winme
REM Entrez ici vos commandes
goto end

:win98
REM Entrez ici vos commandes
goto end

:win95
REM Entrez ici vos commandes
goto end

:end
echo.Fin du programme (source http://blogmotion.fr)
echo.

N’hésitez pas à adapter le script à vos besoins et à me transmettre d’éventuelles améliorations ;)

Télécharger le script qui récupère la version de l’OS en variable


Télécharger le script qui dirige l’éxecution dans un label suivant l’OS

Auteur : Mr Xhark

Fondateur du blog et passionné par les technologies je partage mes découvertes quotidiennement.