Set the result of a command in a variable

Solved
Shooter78 -  
Shooter78 Posted messages 14 Status Member -
Bonjour,

I would like to know how to store the result of a command in a variable?
Here is the command in question: "wmic csproduct get identifyingnumber"
Since the result is on 2 lines, I only want to retrieve the second line in my variable.
Thank you in advance.

7 answers

  1. Shooter78 Posted messages 14 Status Member 3
     
    I finally managed to do what I wanted.
    Here is the code to obtain the serial number:
    FOR /F "tokens=2 delims==" %%B IN ('WMIC csproduct GET identifyingnumber /VALUE ^| FIND /I "IdentifyingNumber="') DO SET serial=%%B

    Here is the one for the PC model:
    FOR /F "tokens=2 delims==" %%A IN ('WMIC csproduct GET Name /VALUE ^| FIND /I "Name="') DO SET machine=%%A


    Thanks Dubcek for your help.
    3
  2. dubcek Posted messages 18627 Registration date   Status Contributor Last intervention   5 660
     
    hello
    try interactively
    for /F %%a "delims=" %%a in ('wmic csproduct get identifyingnumber') do set t=%%a echo %t% 
    in a .bat file, use %%a
    1
  3. Shooter78
     
    Hello,

    I'm getting this:

    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% ECHO command enabled.


    I think that since there are multiple lines, it redefines the variable for each line.
    Any ideas?

    Thanks again for your help.

    P.S.: XXXXXXXXXXXXX being the line I wish to retrieve.
    0
  4. dubcek Posted messages 18627 Registration date   Status Contributor Last intervention   5 660
     
    `%a contains each line, my command stores in t the last line, therefore the second one.
    remove your sets`
    0
  5. Shooter78
     
    The underlined lines are the result of the command; it is not me who put the SET.
    According to the result, there apparently should be 3 lines (one of them empty?), which would explain why in the end I get ECHO enabled instead of the serial number

    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% Command ECHO enabled.


    Thank you for your help.
    0
  6. dubcek Posted messages 18627 Registration date   Status Contributor Last intervention   5 660
     
    Possible indeed, if there is an empty line, it is necessary to have the second to last one
    which Windows? I have XP
    what does the command display (with line numbering)
    wmic csproduct get identifyingnumber | findstr /n "." 
    put do @set t=%a so that the sets do not appear
    0
  7. Shooter78
     
    I have Windows 7 pro x64.
    Here is the result of your command:

    1:IdentifyingNumber 2:XXXXXXXXXXXX


    So apparently there is no 3rd line.
    Strange.
    0