Variable : version de Windows

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

13 réponses

Shakipu
 
Euh... J'ai oublié d'indiquer qu'il me faudrait une commande DOS...
0
Shakipu
 
Eh bien merci beaucoup, je verrais ça demain mais ça a l'air parfait
0
Shakipu
 
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
0
Shakipu
 
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Shakipu
 
Vista me dit qu'ELSE n'est pas un programme ou une commande reconnue... Etrange.... :s
0
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
Il faut veiller à ce qu'il y ait un espace entre la ")" et le premier "E" du ELSE et également entre le "E" final et la "(".
Sinon je ne vois pas pourquoi tu as ce message.
-1
Shakipu
 
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
0
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
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 )

-1
Shakipu
 
Eh bien on peu clore ce sujet par un magnifique [Résolu] !
merci beaucoup à toi christian
0
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
A bientôt peut-être sur CCM, bon courage,
-1
Shakipu
 
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 ?
0
Shakipu
 
Petite erreur de ma part, c'est pas %homedrive% qui permet ça mais %homedrive%%homepath% ou %userprofile%
0
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
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
-1
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
Tiens-moi informé, à demain.
-1
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
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.
-1
cchristian Messages postés 921 Date d'inscription   Statut Membre Dernière intervention   131
 
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,
-1