[DISP] Almacenar el resultado del comando en una variable
Resuelto
Shooter78
-
Shooter78 Mensajes publicados 14 Estado Miembro -
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
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
-
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 -
hola
intentar de forma interactivafor /F %a "delims=" %a in ('wmic csproduct get identifyingnumber') do set t=%a echo %t%en un .bat, usar %%a -
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. -
%a contiene cada línea, mi comando almacena en t la última línea, por lo que la segunda.
elimina tus "set" -
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 -
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 -
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.