Leer palabras separadas por espacio y valor de cadena también contiene espacio en un script por lotes

Necesito leer el valor predeterminado del registro de un script por lotes. El nombre de ciertos elementos contiene algunos espacios. También quiero ejecutar para el bucle en el archivo por lotes una dos veces.

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

Da el siguiente resultado

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

Me gustaría obtener el siguiente resultado y también quiero que esto para el bucle se detenga una vez que obtenga el valor de (Predeterminado)

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

Gracias de antemano por ayudarme!

Respuestas a la pregunta(1)

Su respuesta a la pregunta