Signaler

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

Posez votre question Shooter78 - Dernière réponse le 13 mars 2013 à 00:42 par Shooter78
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
Utile
+3
plus moins
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é ?  
Utile
+1
plus moins
hello
essayer interactivement
for /F %a  "delims=" %a in ('wmic csproduct get identifyingnumber') do  set t=%a
echo %t%
dans un .bat, utiliser %%a
Utile
+0
plus moins
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.
Utile
+0
plus moins
%a contient chaque ligne, ma commande stocke dans t la dernière ligne, donc la deuxième.
enlève tes set
Utile
+0
plus moins
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
Utile
+0
plus moins
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
Utile
+0
plus moins
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.

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !