[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

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
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
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
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
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
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
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