VHD をお手軽にアタッチ・デタッチするバッチ

Windows 7VHD ファイルがネイティブサポートされるようになったんですが、私も最近になってやっと活用するようになってきました。
7に切り替えてから何年経つんだよ、とorz

VHD を使用するにはディスクの管理ツールを使ってGUIでアタッチするというのが常道ですが、VHDを頻繁に差し替える運用をしていると、これ結構面倒なんですよね。
てことで、こんなバッチを組んでみました。

attach_vhd.bat

IF EXIST %1 (
ECHO SELECT VDISK FILE="%1" > %TMP%\diskpart_script.txt
ECHO ATTACH VDISK >> %TMP%\diskpart_script.txt

DISKPART /S %TMP%\diskpart_script.txt
)

:END

detach_vhd.bat

IF EXIST %1 (
ECHO SELECT VDISK FILE="%1" > %TMP%\diskpart_script.txt
ECHO DETACH VDISK >> %TMP%\diskpart_script.txt

DISKPART /S %TMP%\diskpart_script.txt
)

:END

上記を適当なフォルダに保存しておき、 VHD をアタッチするなら attach_vhd.bat に VHD ファイルをドラッグ&ドロップするだけ。デタッチなら detach_vhd.bat を使います。

VHDコマンドラインでアタッチ・デタッチするには DISKPART コマンドを使いますが、こいつを自動化するにはスクリプトファイルを食わせる必要があるんですね。
ところが VHD ファイル名はその都度変わるので、あらかじめスクリプトファイルを作っておくことはできない。
だったらスクリプトファイルをバッチで作っちゃえ! てな発想です。

簡単なバッチですけど、ストレスが大きく軽減されます。
あとは UAC だなー。