繁体   English   中英

通过批处理文件查询注册表项值

[英]Querying a registry key value via batch file

我正在尝试创建一个简单的批处理文件,该文件使用reg query命令检查注册表项中是否存在值,特别是

HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings ProxyEnable key。

如果我运行此命令:

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /f 0x1 /d

它返回以下内容:

HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings ProxyEnable REG_DWORD 0x0

就好像它不接受我/f搜索字段一样,因为我希望输入的命令不返回任何结果,因为我的键值为0x0

我试过在“ 0x1 ”和其他组合周围使用引号,但想知道我做错了什么。

提前致谢!

由于您似乎只想知道是否启用了启用代理,因此您可以使用此代码:

@Echo Off

Set "RR=HKCU"
Set "RK=Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Set "RV=ProxyEnable"

For /F "Skip=1 Tokens=2*" %%A In ('Reg Query "%RR%\%RK%" /V "%RV%" 2^>Nul'
) Do If %%~B Gtr 0 Echo(%%B

Pause

如果你想要打开它,如果它关闭,那么将其更改为如下所示:

@Echo Off

Set "RR=HKCU"
Set "RK=Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Set "RV=ProxyEnable"

For /F "Skip=1 Tokens=2*" %%A In ('Reg Query "%RR%\%RK%" /V "%RV%" 2^>Nul'
) Do If %%~B Equ 0 Reg Add "%RR%\%RK%" /V "%RV%" /T REG_DWORD /D 0x1 /F>Nul

虽然从技术上讲你可以运行它来做到这一点:

@Echo Off

Set "RR=HKCU"
Set "RK=Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Set "RV=ProxyEnable"

Reg Add "%RR%\%RK%" /V "%RV%" /T REG_DWORD /D 0x1 /F>Nul

编辑

要先使用Squashman建议的方法检查它并通过zett42进行改进, 因为以下EnableHttp1_1 REG_DWORD 0x0已经发送到Find

@Echo Off

Set "RR=HKCU"
Set "RK=Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Set "RV=ProxyEnable"

Reg Query "%RR%\%RK%" /F 1 /E /T REG_DWORD|Find /I "%RV%">Nul 2>&1||(
    Reg Add "%RR%\%RK%" /V "%RV%" /T REG_DWORD /D 0x1 /F>Nul)

Reg查询用于读取注册表数据,而不是用于设置或更改注册表数据
使用Add更改注册表数据替换query

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable  /d 0x1 /f

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM