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

Signaler
-
Messages postés
12
Date d'inscription
mardi 12 mars 2013
Statut
Membre
Dernière intervention
13 septembre 2014
-
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

7 réponses

Messages postés
12
Date d'inscription
mardi 12 mars 2013
Statut
Membre
Dernière intervention
13 septembre 2014
3
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
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
18232
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020
5 063
hello
essayer interactivement
for /F %a  "delims=" %a in ('wmic csproduct get identifyingnumber') do  set t=%a
echo %t%
dans un .bat, utiliser %%a
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.
Messages postés
18232
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020
5 063
%a contient chaque ligne, ma commande stocke dans t la dernière ligne, donc la deuxième.
enlève tes set
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
Messages postés
18232
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020
5 063
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
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.