[英]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.