[DISP] Almacenar el resultado del comando en una variable

Resuelto
Hola,

Me gustaría saber cómo almacenar el resultado de un comando en una variable.
Aquí está el comando en cuestión: "wmic csproduct get identifyingnumber"
El resultado está en 2 líneas, y no quisiera recuperar en mi variable solo la segunda línea.
Gracias de antemano

7 respuestas

  1. Finalmente logré hacer lo que quería.
    Aquí está el código para obtener el número de serie:
    FOR /F "tokens=2 delims==" %%B IN ('WMIC csproduct GET identifyingnumber /VALUE ^| FIND /I "IdentifyingNumber="') DO SET serial=%%B

    Aquí está el código para el modelo del PC:
    FOR /F "tokens=2 delims==" %%A IN ('WMIC csproduct GET Name /VALUE ^| FIND /I "Name="') DO SET machine=%%A


    Gracias Dubcek por tu ayuda
    3
    1. Tengo Windows 7 Pro x64.
      aquí está el resultado de tu comando:

      1:IdentifyingNumber 2:XXXXXXXXXXXX


      Entonces aparentemente no hay una tercera línea.
      Bizarro.
      0
      1. Colaborador
        posible efectivamente, si hay una línea vacía, hay que la penúltima
        ¿qué Windows? tengo XP
        qué muestra el comando (con numeración de líneas)
        wmic csproduct get identifyingnumber | findstr /n ". " 
        poner do @set t=%a para que no se vean los set mostrarse
        0
        1. Las líneas subrayadas son el resultado del comando, no fui yo quien puso los SET.
          Según el resultado aparentemente debe haber 3 líneas (¿una vacía?), lo que explicaría por qué al final obtengo el ECHO activado en lugar del número de serie

          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
          0
          1. Colaborador
            %a contiene cada línea, mi comando almacena en t la última línea, por lo que la segunda.
            elimina tus "set"
            0
            1. Hola,

              Obtengo esto:

              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%
              Comando ECHO activada.

              Creo que como hay varias líneas, redefine la variable para cada línea.
              ¿Alguna idea?

              Gracias de nuevo por vuestra ayuda.

              P.S.: XXXXXXXXXXXXX es la línea que deseo recuperar.
              0
              1. Colaborador
                hola
                intentar de forma interactiva
                for /F %a "delims=" %a in ('wmic csproduct get identifyingnumber') do set t=%a echo %t% 
                en un .bat, usar %%a
                1