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!