Script pour vérifier quel OS est installé

Le
ken
Bonsoir,
Ne maîtrisant pas les script je viens solliciter vos compétences.
Je voudrais créer un script .VBS ou .BAT permettant de vérifier quel windows
est installé et d'après le résultat, on lance une application.

Pour être plus clair, un exemple:
1-vérification de l'os
2-si xp installé, exécuter titi.bat
3-si win2000 installé, exécuter toto.bat
4-fin

C'est sans doute peu de chose pour les initiés, mais ça reste compliqué pour
moi.
Merci de m'avoir lu,
Ken
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Méta-MCI
Le #656558
Bonsoir !

Ce petit batch (à adapter) pourrait suffire :

@echo off

for /F "usebackq tokens=*" %%i in (`ver`) do set WV=%%i
if "%WV:~0,20%"=="Microsoft Windows XP" goto :XP

:W2000
echo "WIN-2000"
START "WIN-2000" commande paramètres
goto :EOF:

:XP
echo "WIN-XP"
START "WIN-XP" commande paramètres
goto :EOF:





@-salutations

Michel Claveau
Gilles LAURENT
Le #656316
"ken" news:O3Br%23$
| Bonsoir,

Bonjour,

| Ne maîtrisant pas les script je viens solliciter vos compétences.
| Je voudrais créer un script .VBS ou .BAT permettant de vérifier quel
| windows est installé et d'après le résultat, on lance une application.
|
| Pour être plus clair, un exemple:
| 1-vérification de l'os
| 2-si xp installé, exécuter titi.bat
| 3-si win2000 installé, exécuter toto.bat
| 4-fin
|
| C'est sans doute peu de chose pour les initiés, mais ça reste
| compliqué pour moi.
| Merci de m'avoir lu,
| Ken

En Batch avec la commande VER :

@echo off
ver | find "Windows 2000">nul && call toto.bat
ver | find "Windows XP">nul && call titi.bat

--
Gilles LAURENT
http://glsft.free.fr
Jean-Claude BELLAMY
Le #656315
"ken" news:O3Br%23$
Bonsoir,
Ne maîtrisant pas les script je viens solliciter vos compétences.
Je voudrais créer un script .VBS ou .BAT permettant de vérifier quel
windows est installé et d'après le résultat, on lance une application.

Pour être plus clair, un exemple:
1-vérification de l'os
2-si xp installé, exécuter titi.bat
3-si win2000 installé, exécuter toto.bat
4-fin

P.ex. ainsi :


Version fichier batch (.BAT ou .CMD)
-----------------------------------
Il est basé sur la commande "ver"
Attention, sous W2K3 ou VISTA, la commande "ver" renvoie un mot de moins que
sous W2K ou XP!
C'est pour cela qu'il y a un 2ème test.

@echo off
if %OS%.==. goto Win9x
...
for /F "tokens=5 delims=] " %%v in ('ver') do set version=%%v
if %version%.==. for /F "tokens=4 delims=] " %%v in ('ver') do set
version=%%v
if %version%==5.00.2195 goto W2k
if %version%==5.1.2600 goto XP
if %version%==5.2.3790 goto W2K3
if %version%==6.0.6000 goto Vista
...
:Win9x
...
goto suite
:W2k
...
goto suite
:XP
...
goto suite
:W2K3
...
goto suite
:Vista
...
:suite
...

Version VBS :
-------------
On error resume Next
Set shell = WScript.CreateObject("WScript.Shell")
K1="HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows"
K2="CurrentVersionProductName"
KeyVer=K1 & " NT" & K2
PN=shell.RegRead(KeyVer)
If Err <>0 Then ' On est sous Win9x/ME
Err.Clear
KeyVer=K1 & K2
PN=shell.RegRead(KeyVer)
End If
wscript.echo "Version de Windows : " & PN

PN vaut, suivant le cas :
(script testé en vrai sur chacune de ces versions)
Microsoft Windows 98
Microsoft Windows 2000
Microsoft Windows XP
Microsoft Windows Serveur 2003
Windows Vista (TM) Home Premium

Çà ne marche pas avec NT4, car l'entrée "ProductName" n'existe pas.
Il faut alors tester l'entrée "CurrentVersion", qui vaut :
4.0 (NT 4)
5.0 (W2K)
5.1 (XP)
5.2 (W2K3)
6.0 (Vista)

Donc il faut remplacer
K2="CurrentVersionProductName"
par
K2="CurrentVersionCurrentVersion"

(cela n'existe pas sous Win9x/ME)



--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr

Jean
Le #656312
1-vérification de l'os


Ca tombe bien cette question.

Dans la doc PowerShell on donne un solution WMI pour ça.

Mais :

[Environment]::OsVersion

Amicalement,

--
Jean - JMST
Belgium

ken
Le #656311
Merci Gilles pour ce retour comme toujours rapide et efficace.
Ken


"Gilles LAURENT"
"ken" news:O3Br%23$
| Bonsoir,

Bonjour,

| Ne maîtrisant pas les script je viens solliciter vos compétences.
| Je voudrais créer un script .VBS ou .BAT permettant de vérifier quel
| windows est installé et d'après le résultat, on lance une application.
|
| Pour être plus clair, un exemple:
| 1-vérification de l'os
| 2-si xp installé, exécuter titi.bat
| 3-si win2000 installé, exécuter toto.bat
| 4-fin
|
| C'est sans doute peu de chose pour les initiés, mais ça reste
| compliqué pour moi.
| Merci de m'avoir lu,
| Ken

En Batch avec la commande VER :

@echo off
ver | find "Windows 2000">nul && call toto.bat
ver | find "Windows XP">nul && call titi.bat

--
Gilles LAURENT
http://glsft.free.fr




Jean-Claude BELLAMY
Le #656055
"ken" news:O3Br%23$
Bonsoir,
Ne maîtrisant pas les script je viens solliciter vos compétences.
Je voudrais créer un script .VBS ou .BAT permettant de vérifier quel
windows est installé et d'après le résultat, on lance une application.

Pour être plus clair, un exemple:
1-vérification de l'os
2-si xp installé, exécuter titi.bat
3-si win2000 installé, exécuter toto.bat
4-fin


(je ne comprends pas, je t'ai répondu à 9h17 dans ce NG, l'historique de WM
en témoingne, mais mon message n'est pas apparu !)
Je reposte donc ...

P.ex. ainsi :

Version fichier batch (.BAT ou .CMD)
-----------------------------------
Il est basé sur la commande "ver"
ATTENTION : sous W2K3 ou VISTA, la commande "ver" renvoie un mot de moins
que sous W2K ou XP!
C'est pour cela qu'il y a un 2ème test !

@echo off
if %OS%.==. goto Win9x
...
for /F "tokens=5 delims=] " %%v in ('ver') do set version=%%v
if %version%.==. for /F "tokens=4 delims=] " %%v in ('ver') do set
version=%%v
if %version%==5.00.2195 goto W2k
if %version%==5.1.2600 goto XP
if %version%==5.2.3790 goto W2K3
if %version%==6.0.6000 goto Vista
...
:Win9x
...
goto suite
:W2k
...
goto suite
:XP
...
goto suite
:W2K3
...
goto suite
:Vista
...
:suite
...

Version VBS :
-------------
On error resume Next
Set shell = WScript.CreateObject("WScript.Shell")
K1="HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows"
K2="CurrentVersionProductName"
KeyVer=K1 & " NT" & K2
PN=shell.RegRead(KeyVer)
If Err <>0 Then ' On est sous Win9x/ME
Err.Clear
KeyVer=K1 & K2
PN=shell.RegRead(KeyVer)
End If
wscript.echo "Version de Windows : " & PN

PN vaut, suivant le cas :
(script testé en vrai sur chacune de ces versions)
Microsoft Windows 98
Microsoft Windows 2000
Microsoft Windows XP
Microsoft Windows Serveur 2003
Windows Vista (TM) Home Premium

Çà ne marche pas avec NT4, car l'entrée "ProductName" n'existe pas.
Il faut alors tester l'entrée "CurrentVersion", qui vaut :
4.0 (NT 4)
5.0 (W2K)
5.1 (XP)
5.2 (W2K3)
6.0 (Vista)

Donc il faut remplacer
K2="CurrentVersionProductName"
par
K2="CurrentVersionCurrentVersion"

(cela n'existe pas sous Win9x/ME)


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr

ken
Le #655803
Merci Michel pour ta participation.
Ken

"Méta-MCI" news:
Bonsoir !

Ce petit batch (à adapter) pourrait suffire :

@echo off

for /F "usebackq tokens=*" %%i in (`ver`) do set WV=%%i
if "%WV:~0,20%"=="Microsoft Windows XP" goto :XP

:W2000
echo "WIN-2000"
START "WIN-2000" commande paramètres
goto :EOF:

:XP
echo "WIN-XP"
START "WIN-XP" commande paramètres
goto :EOF:





@-salutations

Michel Claveau



Jean-Claude BELLAMY
Le #655802
Bonsoir,
Ne maîtrisant pas les script je viens solliciter vos compétences.
Je voudrais créer un script .VBS ou .BAT permettant de vérifier quel windows
est installé et d'après le résultat, on lance une application.

Pour être plus clair, un exemple:
1-vérification de l'os
2-si xp installé, exécuter titi.bat
3-si win2000 installé, exécuter toto.bat
4-fin


Hello World !
Cela fait 2 jours que j'essaie de répondre à cette question !
(lundi à 09:17, puis 15:51, puis 15:20)
Et c'est très frustrant d'avoir la réponse à un problème et de ne pas
pouvoir la diffuser !

A cause d'un BUG dans Windows Mail et Windows Live ID, certains de mes
messages (d'autres MVP sont dans le même cas) ne sont pas affichés via
NNTP (mais le sont cependant dans l'interface CDO - Beurk!), comme s'ils
étaient censurés sur le serveur de news!
(Luc Burnouf a exactement le même pb que moi.)


Je reposte donc pour la 4ème fois , mais cette fois-ci j'utilise
Thunderbird (un comble !).
Merci pour votre attention ...

-----------------
Je me suis astreint à fournir l'outil le plus universel possible au
niveau des versions de Windows (car j'ai remarqué des "pièges" dans
certaines fonctions)

P.ex. ainsi :

Version fichier batch (.BAT ou .CMD)
-----------------------------------
Il est basé sur la commande "ver"
ATTENTION : sous W2K3 ou VISTA, la commande "ver" renvoie un mot de
moins que sous W2K ou XP!
C'est pour cela qu'il y a un 2ème test !

@echo off
if %OS%.==. goto Win9x
...
for /F "tokens=5 delims=] " %%v in ('ver') do set version=%%v
if %version%.==. for /F "tokens=4 delims=] " %%v in ('ver') do set
version=%%v
if %version%==5.00.2195 goto W2k
if %version%==5.1.2600 goto XP
if %version%==5.2.3790 goto W2K3
if %version%==6.0.6000 goto Vista
...
:Win9x
...
goto suite
:W2k
...
goto suite
:XP
...
goto suite
:W2K3
...
goto suite
:Vista
...
:suite
...

Version VBS :
-------------
On error resume Next
Set shell = WScript.CreateObject("WScript.Shell")
K1="HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows"
K2="CurrentVersionProductName"
KeyVer=K1 & " NT" & K2
PN=shell.RegRead(KeyVer)
If Err <>0 Then ' On est sous Win9x/ME
Err.Clear
KeyVer=K1 & K2
PN=shell.RegRead(KeyVer)
End If
wscript.echo "Version de Windows : " & PN

PN vaut, suivant le cas :
(script testé en vrai sur chacune de ces versions)
Microsoft Windows 98
Microsoft Windows 2000
Microsoft Windows XP
Microsoft Windows Serveur 2003
Windows Vista (TM) Home Premium

Çà ne marche pas avec NT4, car l'entrée "ProductName" n'existe pas.
Il faut alors tester l'entrée "CurrentVersion", qui vaut :
4.0 (NT 4)
5.0 (W2K)
5.1 (XP)
5.2 (W2K3)
6.0 (Vista)

Donc il faut remplacer
K2="CurrentVersionProductName"
par
K2="CurrentVersionCurrentVersion"

(cela n'existe pas sous Win9x/ME)




--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr

Jacques Barathon [MS]
Le #655801
"Jean" news:
1-vérification de l'os


Ca tombe bien cette question.

Dans la doc PowerShell on donne un solution WMI pour ça.

Mais :

[Environment]::OsVersion


Exact. Seul problème, Jean, c'est que PowerShell n'est pas supporté sur
Windows 2000. Or, la question de Ken porte justement sur un test entre XP et
2000...

Jacques


Jean
Le #655800
Or, la question de Ken porte justement sur un test entre XP et 2000...


Pas de souci :-)
Je le signalais hors contexte de Ken :-)

Amicalement,

--
Jean - JMST
Belgium

Publicité
Poster une réponse
Anonyme