[DISP] Almacenar el resultado del comando en una variable

Resuelto
Shooter78 -  
Shooter78 Mensajes publicados 14 Estado Miembro -
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. Shooter78 Mensajes publicados 14 Estado Miembro 3
     
    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
  2. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 659
     
    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
  3. Shooter78
     
    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
  4. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 659
     
    %a contiene cada línea, mi comando almacena en t la última línea, por lo que la segunda.
    elimina tus "set"
    0
  5. Shooter78
     
    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
  6. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 659
     
    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
  7. Shooter78
     
    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