プロが教える店舗&オフィスのセキュリティ対策術

インターネットオプションのプロキシ設定をバッチファイルでトグルさせようと思ったのですが、思うように動かないのでどなたか助けて頂けないでしょうか。
こちらを参考にさせて頂きました。
http://www.tkssoft.com/cmd/cmd013.html

@echo off
cls
set bool='reg query "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable'

if '%bool%'=='0' goto Set_1
if '%bool%'=='1' goto Set_0

:Set_1
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyEnable /t reg_dword /d 1
goto :eof

:Set_0
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyEnable /t reg_dword /d 0
goto :eof


明らかにset部分が間違っていると思うのですが、どのように直したらいいのかいろいろ試してみたのですがどうにも解決しませんでした。

A 回答 (2件)

『コマンドプロンプト』を起動して、



set bool='reg query "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable'

と入力後、

set bool    (←または、echo %bool%)

と入力してみてください。単純に、

bool='reg query "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable'

と表示されるだけだと思いますョ。

"reg"コマンドの実行結果で分岐させるのでしたら、

reg query "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable

を実行すると("Windows XP"の実行結果では)、

! REG.EXE VERSION 3.0

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

と画面に表示されますから、これをパイプ(半角の"|")を通して"find"コマンドに送り、"0x0"があるかどうかで、"ERRORLEVEL"を判定すると良いと思います。("find"コマンドは、指定した文字列が見つかれば、"ERRORLEVEL"に0を、見つからなければ1を返します。)

具体的には、

@echo off
cls
reg query "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable | find "0x0"

if %ErrorLevel%==1 goto Set_0
if %ErrorLevel%==0 goto Set_1

:Set_1
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyEnable /t reg_dword /d 1
goto :eof

:Set_0
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyEnable /t reg_dword /d 0
goto :eof
    • good
    • 3
この回答へのお礼

わかりやすい解説ありがとうございます。
なるほど・・言われてみれば返り値をしっかり確認してから試すべきでした。
無事目的動作しました。ありがとうございます。

お礼日時:2009/03/21 23:37
    • good
    • 0
この回答へのお礼

forを使った方法も何通りか目にしたのですが、いま一つ使い方がわからなかったところです。
ありがとうございました。

お礼日時:2009/03/21 23:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A