Blog Informatique

Récupérer la version de Windows en script batch

Batch et VBScript   18 réactions »
A ce point ?PassableIntéressantYeahExcellent! (1 vote(s), 3,00/ 5)
Loading...

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.

La liste des versions de Windows NT est disponible sur Wikipedia (version list).

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 10.0." > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 10 Insider Preview
ver | find /i "version 10.0.100" > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 10 Technical Preview
ver | find /i "version 10.0.10586" > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 10 Threshold 2
ver | find /i "version 10.0.10240" > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 10 Threshold 1
ver | find /i "version 6.4." > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 10 Technical Preview
ver | find /i "version 6.3." > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 8.1-2012R2
ver | find /i "version 6.2." > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 8-2012
ver | find /i "version 6.1." > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows 7-2008R2
ver | find /i "version 6.0." > nul && if %errorlevel%==0 set $VERSIONWINDOWS=Windows Vista-2008
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 : » Lire la suite

Créer un menu de sélection de choix en DOS

Batch et VBScript   5 réactions »
A ce point ?PassableIntéressantYeahExcellent! (2 vote(s), 5,00/ 5)
Loading...

Si jamais vous réalisez des scripts en batch vous aurez peut-être un jour besoin de proposer un menu choix à choix multiple à l'utilisateur :
» Lire la suite

Script Batch (.bat) avec accents sous DOS

Batch et VBScript   10 réactions »
A ce point ?PassableIntéressantYeahExcellent! (3 vote(s), 5,00/ 5)
Loading...

But : convertir les caractères spéciaux au format reconnu par DOS (encodage CP850)

Note : si vous cherchez comment échapper les caractères spéciaux, consultez cette page.

Si vous écrivez un script batch (.bat) par exemple sous Notepad, vous vous rendrez vite compte que les caractères spéciaux ne sont pas reconnus sous DOS. Ou plutôt ils sont acceptés en tant qu'autre caractère, ce qui peut-être plutôt génant. » Lire la suite