[DOS] Stocker résultat commande dans une variable [Résolu/Fermé]

Shooter78 - 12 mars 2013 à 12:37 - Dernière réponse : Shooter78 12 Messages postés mardi 12 mars 2013Date d'inscription 13 septembre 2014 Dernière intervention
- 13 mars 2013 à 00:42
Bonjour,

Je voudrais savoir comment stocker le résultat d'une commande dans une variable ?
Voici la commande en question: "wmic csproduct get identifyingnumber"
Le résultat étant sur 2 ligne, je ne voudrais récupérer dans ma variable que la 2 seconde ligne.
Merci d'avance
Afficher la suite 

7 réponses

Shooter78 12 Messages postés mardi 12 mars 2013Date d'inscription 13 septembre 2014 Dernière intervention - 13 mars 2013 à 00:42
+3
Utile
J'ai finalement réussi à faire ce que je voulais.
Voila le code pour obtenir le numéro de série:
FOR /F "tokens=2 delims==" %%B IN ('WMIC csproduct GET identifyingnumber /VALUE ^| FIND /I "IdentifyingNumber="') DO SET serial=%%B

Voici celui pour le modèle du pc:
FOR /F "tokens=2 delims==" %%A IN ('WMIC csproduct GET Name /VALUE ^| FIND /I "Name="') DO SET machine=%%A


Merci Dubcek pour ton aide
Cette réponse vous a-t-elle aidé ?  
dubcek 17178 Messages postés lundi 15 janvier 2007Date d'inscriptionContributeurStatut 10 décembre 2017 Dernière intervention - 12 mars 2013 à 14:41
+1
Utile
hello
essayer interactivement
for /F %a  "delims=" %a in ('wmic csproduct get identifyingnumber') do  set t=%a
echo %t%
dans un .bat, utiliser %%a
Shooter78 - 12 mars 2013 à 15:36
0
Utile
Bonjour,

j'obtiens ceci:

C:\Windows\system32>for /F "delims=" %a in ('wmic csproduct get identifyingnumber') do  set t=%a

 :\Windows\system32>set t=IdentifyingNumber

 :\Windows\system32>set t=XXXXXXXXXXX

 :\Windows\system32>set t=

C:\Windows\system32>echo %t%
Commande ECHO activée.


je pense que comme il y à plusieurs ligne, il redéfinit la variable pour chaque ligne.
Une idée ?

Merci encore pour votre aide .

Ps: XXXXXXXXXXXXX étant la ligne que je souhaite récupérer.
dubcek 17178 Messages postés lundi 15 janvier 2007Date d'inscriptionContributeurStatut 10 décembre 2017 Dernière intervention - 12 mars 2013 à 16:40
0
Utile
%a contient chaque ligne, ma commande stocke dans t la dernière ligne, donc la deuxième.
enlève tes set
0
Utile
Les ligne soulignées sont le résultat de la commande, ce n'est pas moi qui est mis les SET.
D'après le résultat il doit apparemment y avoir 3 lignes (une de vide ?) , ce qui expliquerais pourquoi à la fin j'obtiens le ECHO activée à la place du numéro de série

C:\Windows\system32>for /F "delims=" %a in ('wmic csproduct get identifyingnumber') do  set t=%a 

 :\Windows\system32>set t=IdentifyingNumber 

 :\Windows\system32>set t=XXXXXXXXXXX 

 :\Windows\system32>set t=

C:\Windows\system32>echo %t% 
Commande ECHO activée.


merci pour ton aide
dubcek 17178 Messages postés lundi 15 janvier 2007Date d'inscriptionContributeurStatut 10 décembre 2017 Dernière intervention - Modifié par dubcek le 12/03/2013 à 17:11
0
Utile
possible effectivement , si il y a une ligne vide, il faut l'avant dernière
quel Windows ? j'ai XP
qu'affiche la comnmande (avec numérotation des lignes)
wmic csproduct get identifyingnumber | findstr /n "." 
mettre do @set t=%a pour ne pas voir les set s'affifcher
0
Utile
J'ai Windows 7 pro x64.
voila le résultat de ta commande:

1:IdentifyingNumber 
2:XXXXXXXXXXXX


Donc apparement il n'y a pas de 3ème ligne.
Bizarre.