簡體   English   中英

從批處理文件切換注冊表值

[英]Switch Registry Value from Batch File

我的要求是我需要更改注冊表的值,特別是此鍵"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" Value = ProxyEnable

需要切換REG_DWORD01 )。 即SWITCH:IF代理啟用然后禁用如果代理禁用然后啟用

啟用

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f

要禁用

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t 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
     )

這是到目前為止的代碼,無法修改它。

@echo off
setlocal
set key="HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
set value="ProxyEnable"
set newdata=0x0
For /f "tokens=2,3 skip=2 delims= " %%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 %data% already present & reg add %key% /v %value% /t %type% /d 1 /f
) else (
echo %data% already present & reg add %key% /v %value% /t %type% /d 0 /f
)

要將值從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

我必須使用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 presentecho already present

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM