2015-01-20 137 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