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