[DOS] Stocker résultat commande dans une variable

Résolu
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

  1. 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
    1. 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.
      1. Contributeur
        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
        1. 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
          1. Contributeur
            %a contient chaque ligne, ma commande stocke dans t la dernière ligne, donc la deuxième.
            enlève tes set
            1. 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.
              1. Contributeur
                hello
                essayer interactivement
                for /F %a  "delims=" %a in ('wmic csproduct get identifyingnumber') do  set t=%a
                echo %t%
                
                dans un .bat, utiliser %%a