Read output of command into variable

Discussion in 'Scripting' started by George King, Jul 20, 2019.

  1. George King

    George King MDL Expert

    Aug 5, 2009
    1,858
    2,197
    60
    Hi all,

    I´m trying modify bcd with these commands

    Code:
    @echo off
    bcdedit /store "%~dp0_output\boot\bcd" /copy {default} /d "Windows x64" >> "%~dp0_output\boot\GUID.TXT"
    for /f "tokens=2 delims={}" %%i in ("%~dp0_output\boot\GUID.TXT") do (set GUID=%%i)
    ::del /q /s "%~dp0_output\boot\GUID.TXT"
    echo %GUID%
    bcdedit /store "%~dp0_output\boot\bcd" /set %GUID% device "ramdisk=[boot]\sourc64\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}"
    bcdedit /store "%~dp0_output\boot\bcd" /set %GUID% locale "cs-CZ"
    bcdedit /store "%~dp0_output\boot\bcd" /set %GUID% osdevice "ramdisk=[boot]\sourc64\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}"
    
    pause
    
    Problem is when Im trying to read output from txt to variable, nothing is loaded into %GUID%.
    First command return txt file with GUID, but every run is generated new, so what I´m doing wrong with loading GUID from this output?
    Code:
    The entry was successfully copied to {7aa217ea-aa81-11e9-8389-001a7dda7113}.
    Can someone help how to solve my problem, please?

    Thanks
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  2. George King

    George King MDL Expert

    Aug 5, 2009
    1,858
    2,197
    60
    Solved: to save GUID the right command is
    Code:
    for /f "delims={} tokens=2" %%I IN ('bcdedit /store "%~dp0_output\boot\bcd" /copy {default} /d "Windows x64"') DO SET GUID=%%I
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...