2015-01-20 71 views
0

我的要求是,我需要尤其在该关键“HKCU \软件\微软\的Windows \ CurrentVersion \ Internet设置”值= ProxyEnable交换机注册表值

的DWORD更改注册表 的价值(0或1)需要切换。 即 SWITCH: IF代理已启用然后禁用 IF代理被禁用,则启用

启用

REG ADD “HKCU \软件\微软\的Windows \ CurrentVersion \ Internet设置”^ /V ProxyEnable /吨REG_DWORD/d 1/F

禁用 REG ADD “HKCU \软件\微软\的Windows \ CurrentVersion \ Internet设置”^ /v ProxyEnable /吨REG_DWORD/d 0/F

 @echo off 
    setlocal 
    set key="HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" 
    set value=ProxyEnable 
    set newdata=0 
    for /f "tokens=2* skip=3" %%a in ('reg query %key% /v %value%') do (
    set type=%%a 
    set data=%%b 
    ) 
     echo %data% | find /i "%newdata%" > nul 
    if %errorlevel% equ 0 (echo %newdata% already present 
    ) else (
    echo reg add %key% /v %value% /t %type% /d %newdata% /f 
    ) 

这是迄今为止的代码,无法修改它。好心帮

+0

究竟是什么部分你有问题? – Gabe 2015-01-20 20:42:55

回答

0

我的事情,你必须使用skip=2

@echo off 
set key="HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" 
set "value=ProxyEnable" 
for /f "tokens=2* skip=2" %%a in ('reg query %key% /v %value%') do call:Treat %%a %%b 
exit/b 

:Treat 
echo %2 | find /i "1" && echo already present || reg add %key% /v %value% /t %1 /d 1 /f 

如果要禁用它,如果现在只需更换echo already present通过:

reg add %key% /v %value% /t %1 /d 0 /f 
0

要切换/开关值从1到0和0到1,一些简单的数学有助于简化:set /a newdata=1-data

下面是我该怎么做:

@echo off 
setlocal 
set key="HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" 
set value=ProxyEnable 
for /f "tokens=2* skip=2" %%a in ('reg query %key% /v %value%') do (
    set data=%%b 
) 
set /a newdata=1-data 
reg add %key% /v %value% /d %newdata% /f