
インターネットオプションのプロキシ設定をバッチファイルでトグルさせようと思ったのですが、思うように動かないのでどなたか助けて頂けないでしょうか。
こちらを参考にさせて頂きました。
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部分が間違っていると思うのですが、どのように直したらいいのかいろいろ試してみたのですがどうにも解決しませんでした。
No.1ベストアンサー
- 回答日時:
『コマンドプロンプト』を起動して、
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
わかりやすい解説ありがとうございます。
なるほど・・言われてみれば返り値をしっかり確認してから試すべきでした。
無事目的動作しました。ありがとうございます。
No.2
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
batファイルでレジストリキーの有無を確認したい
その他(プログラミング・Web制作)
-
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
コマンドプロンプト バッチ|結果を変数に代入する方法
その他(プログラミング・Web制作)
-
-
4
最初の一度しか実行されないログオンスクリプト
Windows Me・NT・2000
-
5
ローカルグループポリシー 設定変更をbatファイルで実行するコマンド
Windows 10
-
6
runas実行した時にきかれるパスワードを手入力以外で読み込ませたい
その他(プログラミング・Web制作)
-
7
batでレジストリキーから読み取った値をセットする方法
その他(プログラミング・Web制作)
-
8
コマンドプロンプトによるフォルダ内のファイル存在有無
UNIX・Linux
-
9
バッチファイル reg queryした値をreg add したい
その他(プログラミング・Web制作)
-
10
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
11
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
12
regファイルでワイルドカードを使う方法
Windows 7
-
13
レジストリの変更が反映されない
Windows 10
-
14
Wordで「環境変数TEMPの設定を確認してください」のエラーの対処法
Word(ワード)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UNIX コマンドにおける # や円...
-
「環境変数名の編集」ウィンド...
-
compressコマンドってなくなっ...
-
echo $!の意味を教えてください
-
AIXでの文字コード、改行コード...
-
gfortranでmakefile
-
コマンドプロンプトにおけるコ...
-
Linuxでコマンドが終了しない
-
SCコマンドでアクセス拒否
-
Linuxコマンドは何の言語で書か...
-
「bash:ipconfig:command not f...
-
[バッチファイル]レジストリ値...
-
linuxのファイル名の長さを255B...
-
外部コマンド、組み込みコマン...
-
browstat を実行したい
-
CentOSでIPアドレスが表示され...
-
コマンド履歴が~/.bash_history...
-
shutdownコマンドをキャンセル...
-
gemコマンド yumコマンド
-
Solaris10でLinux系にあるchkco...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UNIX コマンドにおける # や円...
-
コマンドプロンプトにおけるコ...
-
compressコマンドってなくなっ...
-
[バッチファイル]レジストリ値...
-
「環境変数名の編集」ウィンド...
-
SCコマンドでアクセス拒否
-
Linuxコマンドは何の言語で書か...
-
vbaで「最前面に」とする方法は?
-
至急です、Ubuntuに詳しい方助...
-
AIXでの文字コード、改行コード...
-
画面の文字をさかのぼってみる...
-
クイックアクセスツールバーに...
-
solarisのdateコマンドで
-
Ctrl+Zで戻りすぎた場合、逆に...
-
ワイルドカードを使ってでフォ...
-
dig/host/nslookup コマンド...
-
shutdownコマンドをキャンセル...
-
アクセスのボタンから指定のワ...
-
echo $!の意味を教えてください
-
Linuxでコマンドが終了しない
おすすめ情報