我遇到了通过批处理使用reg.exe添加注册表项的问题。 我正在使用这个:
FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\iNiT" /v Basic`) DO (
SET BASICVALUE=%%A %%B
)
ECHO ERROR: %ERRORLEVEL%
编辑: Normaly REG.exe在执行时输出错误级别; 0 - 成功 1 - 失败
我得到了:
ERROR:
不知何故,错误级别被擦除或未保存。 我需要在执行时得到%errorlevel%,我该怎么做,这似乎不起作用。 你能以某种方式将errorlevel设置为变量吗?我测试了这个:
FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\iNiT" /v Basic && SET ERROR=%ERRORLEVEL%`) DO (
SET BASICVALUE=%%A %%B
)
ECHO %ERROR%
这也不起作用。
%% wasn't expected
任何信息都会有所帮助:)
答案 0 :(得分:1)
REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\iNiT" /v Basic > tempFile.txt
echo %errorlevel%
FOR /F "usebackq tokens=3*" %%A IN (tempFile.txt) DO (
SET BASICVALUE=%%A %%B
)
答案 1 :(得分:0)
我在我的一个脚本中使用了以下代码,可能会回答您的问题 -
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\VisualSVN\VisualSVN Server" /V RepositoriesRoot >nul 2>&1 & if %errorlevel%==1 (echo.Visual SVN not installed)
干杯,G