I need to read default value of registry from a batch script. The name of certain item's contains some spaces. Also I want to execute for loop in batch file for one two times.
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
It Gives following output
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 . . .
I would like to get following output and also want that this for loop should stop once I get value of (Default)
(
set ValueName=(Default)
set ValueType=REG_SZ
set ValueValue=C:\Program Files (x86)\abc\
)
Thanks in advance for helping me!