Variable : version de Windows
Shakipu
-
Shakipu -
Shakipu -
Bonjour,
Je voudrais savoir quelle commande (ou script) me permettrait de faire une action ou une autre selon la version de Windows... Par exemple :
si Windows est Windows XP
echo C'est un XP
si Windows est Vista
echo c'est un foutu Vista
il me faut juste 2 conditios : pour Windows XP et Vista ( comme dans l'exemple )
J'ai cherché par moi même mais je suis pas assez expérimenté... En fait je connais presque rien
Merci d'avance
Je voudrais savoir quelle commande (ou script) me permettrait de faire une action ou une autre selon la version de Windows... Par exemple :
si Windows est Windows XP
echo C'est un XP
si Windows est Vista
echo c'est un foutu Vista
il me faut juste 2 conditios : pour Windows XP et Vista ( comme dans l'exemple )
J'ai cherché par moi même mais je suis pas assez expérimenté... En fait je connais presque rien
Merci d'avance
13 réponses
-
-
-
Alors alors,
ce code est parfait en ce qui concerne Windows XP mais quand ça concerne Vista... En fait, la commande "ver" dans Vista donne quelque chose comme : Microsoft Windows [version 6.0.quelquechose] donc ça ne marche pas... Je pense qu'il faut se baser sur le numéro de version ( 5 pour XP et 6 pour Vista ) pour que ce code marche dans les deux Windows... Une idée ?
Merci d'avance -
Ton idée sur le numéro était pas mal réfléchie mais quand tu regardes le VER de Windows, tu trouves [version 5.0.2600] donc un 6...
mais je pense que la deuxième idée est l'idéale
merci beaucoup ! -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
Finalement je vais essayer une autre technique : nous avons :
- sous Windows XP, "Microsoft Windows XP"
- sous Win Vista, "Microsoft Windows [version 6.0.1600]
IF "%version_W%" == "XP" (
C'est un XP )
IF "%version_W%" == "[v" (
C'est un foutu Windows
Cela fonctionnerait-t'il ? Je ne peux pas tester pour l'instant, je ne pourrais essayer que ce soir
merci d'avance-
Je ne pense pas que cela fonctionne de cette manière. Dans la variale %%K tu auras "[version"
IF "%version_W%" == "XP" ( C'est un XP ) IF "%version_W%" == "[v" ( C'est un foutu Windows )
De cette manière ça doit fonctionner (à tester sous Vista)IF "%version_W%" == "XP" ( C'est un XP ) IF "%version_W%" == "[version" ( C'est un foutu Windows )
-
-
-
Dernière nouvelle, ma variable était en fait pour copier un fichier dans C:/Documents and Settings/%user%/ et apparemment, la commande %homedrive% permet d'y accéder quel que soit la version de Windows et l'utilisateur...
Je travaille dessus
P.S : quelqu'un aurait une variable permettant de savoir dans quel disque se situe le script ? -
Petite erreur de ma part, c'est pas %homedrive% qui permet ça mais %homedrive%%homepath% ou %userprofile%
-
Bonsoir,
Je te propose ce qui suit en MS-DOS:
SETLOCAL ENABLEdelayedExpansion SETLOCAL ENABLEextensions CLS rem INFORMATIONS (sous windows XP) : rem Cette commmande affiche : Microsoft Windows XP [version 5.1.2600] VER rem rem Cette commmande affiche : Windows_NT ECHO %os% rem Moyen d'identifier la version XP ou Vista : FOR /F "tokens=1-4*" %%I IN ( ' VER ^| FIND "Windows" ') DO ( SET "version_W=%%K" ) IF "%version_W%" == "XP" ( ECHO C'est un XP ) rem ici je présume que le libellé est "Vista". Je ne peux pas faire le test je rem suis sous XP. IF "%version_W%" == "Vista" ( ECHO C'est un foutu Vista ) pause -
-
Bonsoir,
Compte tenu du message de la commande VER ( Microsoft Windows [version 6.0.quelquechose) qui ne contient pas le mot Vista en lieu et place de XP, ce qui a pour effet d'éliminer l'avantage du "positionnel" (position des groupes de c. séparés par un espace au moins, dans les deux messages)) :
Microsoft Windows [version 6.0.quelquechose]
comparé à
Microsoft Windows XP [version 5.1quelquechose]
La recherche sur un numéro (5. ou 6.) semble raisonnable (il est peu probable de trouver à terme une version 5.6.1 par exemple pour windows XP ou l'équivalent pour Vista). Dans ce cas on peut programmer comme ceci :FOR /F %%I IN ( ' VER ^| FINDSTR /C:"5." ') DO ( ECHO C'est un XP ) FOR /F %%I IN ( ' VER ^| FINDSTR /C:"6." ') DO ( ECHO C'est un foutu Vista )
Autre possibilité :
Si tu es certain de n'exécuter ce batch tel qu'il est, que sur les deux systèmes XP OU Vista, on peut aussi procéder par élimination (si ce n'est pas l'un, c'est l'autre) sans changer autre chose au code existant.IF "%version_W%" == "XP" ( ECHO C'est un XP ) ELSE ( ECHO C'est un foutu Vista )
Dis-moi ce que tu en penses. -
Oui, mais le 6 de 5.0.2600 n'est pas suivi par un . (point) et l'on teste "5." et "6.". Mais de toute façon c'est scabreux.
Puisque la seconde solution te convient ce n'est pas plus mal.
Bon courage ! Merci pour le retour,