Чтение слов, разделенных пробелом и строковым значением, также содержит пробел в пакетном скрипте

Мне нужно прочитать значение реестра по умолчанию из пакетного скрипта. Название определенного элемента содержит несколько пробелов. Также я хочу выполнить цикл в пакетном файле один раз.

rem @echo OFF

setlocal ENABLEEXTENSIONS
set KEY_NAME="HKEY_CURRENT_USER\Software\abc\xyz pqr"

FOR /F "tokens=1-3 delims=<TAB>" %%A IN ('REG QUERY %KEY_NAME% 2^>nul') DO (
    set ValueName=%%A
    set ValueType=%%B
    set ValueValue=%%C
)
if defined ValueName (
    @echo Value Name = %ValueName%
    @echo Value Type = %ValueType%
    @echo Value Value = %ValueValue%
) else (
    @echo %KEY_NAME%\%VALUE_NAME% not found.
)
pause

Это дает следующий вывод

rem @echo OFF

setlocal ENABLEEXTENSIONS

set KEY_NAME="HKEY_CURRENT_USER\Software\abc\xyz pqr"

FOR /F "tokens=1-3 delims=<TAB>" %A IN ('REG QUERY "HKEY_CURRENT_USER\Software\abc\xyz pqr" 2>nul') DO (
set ValueName=%A
 set ValueType=%B
 set ValueValue=%C
)

(
set ValueName=HKEY_CURREN
 set ValueType=_USER\Software\abc\xyz pq
 set ValueValue=
)

(
set ValueName=    (Default)    REG_SZ    C:\Program Files (x86)\abc\
 set ValueType=
 set ValueValue=
)

(
set ValueName=
 set ValueType=uthor    REG_SZ    gj
 set ValueValue=
)

(
set ValueName=    Version    REG_SZ    1.4.0.0
 set ValueType=
 set ValueValue=
)

if defined ValueName (



)  else ()
Value Name =     Version    REG_SZ    1.4.0.0
Value Type =
Value Value =

pause
Press any key to continue . . .

Я хотел бы получить следующий вывод, а также хочу, чтобы цикл for прекратился, как только я получу значение (по умолчанию)

(
set ValueName=(Default)
set ValueType=REG_SZ
set ValueValue=C:\Program Files (x86)\abc\
)

Заранее спасибо за помощь!

Ответы на вопрос(1)

Ваш ответ на вопрос