2012年2月12日日曜日

無線LANのデバイスをバッチで無効/有効化

DJ用のノートPC、デスクトップと音楽ファイルを同期する際に
無線LANを使ってまして。

Traktorを使うときはノイズを抑止するために
無線LANのデバイスを無効化するんですが、
いちいちデバマネを開いて無効化するのが
面倒くさい!

なので、無線LANを無効/有効化するバッチを作ってみました。

@echo off

REM 初期値の設定
set NetStatus="ON"
echo.

REM ネットワークカードのステータスを取得
CD [devcon.exeを置いている場所]
for /f %%A in ('devcon.exe status "[無線LANカードのハードウェアID]" ^| findstr "running."')do set NetStatus=%A


REM ネットワークが有効なら無効化、無効なら有効化
if %NetStatus%=="Driver" goto LanOn
if %NetStatus%=="ON" goto LanOff


:LanOn
devcon.exe disable "[無線LANカードのハードウェアID]"
echo.
echo 無線LANを【無効化】しました。
goto END


:LanOff
devcon.exe enable "[無線LANカードのハードウェアID]"
echo.
echo 無線LANを【有効化】しました。 
goto END


:END
REM メッセージを出して、終了
echo ツールを終了します…。
ping localhost -n 6

devcon.exe statusでLANカードの状態を取得

findstrで実行結果を抽出

・無線LANが有効なら変数のNetStatusがDriver」になる
・無線LANが無効なら変数のNetStatusが「ON」になる

無線LANが有効なら→無効化
無線LANが無効なら→有効化

コマンドプロンプトの画面を数秒残しておくため
pingを数回飛ばして、終了


というバッチです。
Windows7 64bit環境だからamd64のdevcon.exeを
使わないといけないのにi386用を使おうとしてたり、
コマンドの実行結果を変数に入れるために
for文を使うのが初めてだったりしたので
作るのに苦労しました(^^;)

amd64用のdevcon.exeは以下からダウンロードできます。
Windows Driver Kit (WDK) の入手方法
ダウンロードしたISOファイルを使用して、WDKの
ToolsのみインストールすればOKです。

下の記事を参考にしました。
Windows 7 x64(amd64)用のdevcon.exe





2012/02/13 追記
ずう~っとenable/disableしたときの
「No devices ~~」
っていうエラーに悩まされてたんですが、
amd64版を使わないといけないのに
i386版を使っていたために起こっていたエラーでした。
上記のリンクからamd64用をダウンロードして
解決しました!

0 件のコメント:

コメントを投稿