.Bat / CMD - 用reg.exe隐藏“错误”> nul 2>& 1

时间:2017-09-30 23:11:29

标签: batch-file cmd registry echo

FOR /F "tokens=2*" %%A IN (
   'REG QUERY "HKLM\Software\EA GAMES\Need for Speed Most Wanted" /v InstallDir'
) DO (set HBMU=%%B)
GOTO END

我如何添加如果%ERRORLEVEL%== 1转到关闭我的代码?因为当我把它放在DO(设置HBMU = %% B)时它不起作用。

enter image description here

1 个答案:

答案 0 :(得分:1)

在完成第2行的其余注册表项后尝试此

For /F "Skip=1 Tokens=2*" %%A In (
    'Reg Query "HKLM\SOFTWARE\..." /V "InstallDir" 2^>Nul'
) Do Set "HBMU=%%B"

您无法将两者重定向到Nul,否则不会从循环中输出任何变量%%B

修改

这是一个完整的脚本,应该执行您的注释代码应该执行的操作。 (只要您的软件根据操作系统架构确定将其信息放在注册表中)

@Echo Off
Set "EAG=EA GAMES\Need for Speed Most Wanted"
Set "RKM=\"
Reg Query "HKLM\Hardware\Description\System\CentralProcessor\0"^
    /V "Identifier" 2>Nul|Find /I "x86">Nul||Set "RKM=\Wow6432Node\"
For /F "EOL=HTokens=2*" %%A In ('Reg Query "HKLM\Software%RKM%%EAG%" /V^
 "InstallDir" 2^>Nul') Do Start "" "%%~B\unins000.exe"
Pause