从usebackq获取errorlevel

时间:2014-08-14 15:41:35

标签: batch-file

我遇到了通过批处理使用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

任何信息都会有所帮助:)

2 个答案:

答案 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