2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Windows仮想ディスクをバッチで一発作成/削除

Last updated at Posted at 2017-01-15

#概説
Windows仮想ディスクファイル(VHD)をコマンドラインなどからバッチ作成する方法です。
VHDの利用目的はHyper-Vなど色々ありますが、一時的な作業領域を確保するのに有効と思われます。
特にdismコマンドのような怪しいフォルダ構造を作るツールを扱う場合、VHD上で作業することで作業に失敗してもファイルシステムの汚染を避けられ便利です。
(※たとえ階層構造やACLがおかしくなっても、VHDファイル毎処分してしまえばなかった事に。)

#構文
##VHD作成

mak_vhd.bat
REM VHDに割り当てるドライブレター(任意)
SET VDRIVE=K
REM VHDファイルのパス(基本変更不要ですが%TEMP%の空きが危ない場合は別のパスを明示指定したほうが良いです)
SET VFILE=%TEMP%\VF_%VDRIVE%.VHD

REM VHD作成--------------
(
echo create vdisk file="%VFILE%" maximum=65536 type=expandable
echo select vdisk file="%VFILE%"
echo attach vdisk
echo clean
echo create partition primary
echo format fs=ntfs quick
echo assign letter=%VDRIVE%
)|diskpart

##VHD削除

del_vhd.bat
REM VHDに割り当てるドライブレター(任意)
SET VDRIVE=K
REM VHDファイルのパス(基本変更不要ですが%TEMP%の空きが危ない場合は別のパスを明示指定したほうが良いです)
SET VFILE=%TEMP%\VF_%VDRIVE%.VHD

REM VHD削除--------------
(
echo select vdisk file="%VFILE%"
echo detach vdisk
)|diskpart
rem VHDを再利用するなら↓構文を無効化してください。
del /q "%VFILE%"

上記の作成用構文を組み合わせて使うのであれば、削除側のSETコマンドは不要です。

#補足
###diskpartについて
vhdの制御はdiskpartコマンドを利用します。
diskpartのリファレンス https://technet.microsoft.com/ja-jp/library/cc766465(v=ws.10).aspx
(しかし…肝心の仮想ディスクの説明がない…help等を見るのが無難かも)

###カッコを使った構文について
括弧を使うとbash等のヒアドキュメント風にコマンドをスクリプトに埋め込めます。
詳細は拙作記事「Windowsコマンドラインにおける括弧の活用」を参照ください。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?