Dismを使った自動ディスクバックアップ作成
ご無沙汰しております。
昨日の仕事終わりに常駐先のプロパーさんからこんな要望をいただきました。
「POS端末のディスクバックアップを作成する作業を自動化したい」
現在手動で行っているのが以下(だったと思う)
1.SYSTEM領域にドライブレター設定
2.SYSTEM領域のバックアップをDismコマンドで作成
3.CドライブのバックアップをDismコマンドで作成
2と3は苦労せずに出来そうだけど、曲者なのは1でした。
1を行うにはDiskpartコマンドを使用します。
Diskpartコマンドを自動化するには、管理者権限での実行が必須です。SYSTEM領域にドライブレターを設定します。
diskpart rem ボリューム一覧表示 list vol rem 表示されたボリュームのInfoがシステムのvolumeを選択 select vol=0 rem ドライブレターを設定 埋まってなさそうなSを指定 assign letter=s
今回は上記の内容を自動で行いたいので、一度リダイレクトでlist volを出力して、
正規表現でシステム領域のVolumeを割り出して設定してみました。
@echo off setlocal enabledelayedexpansion rem 管理者実行するため、カレントを自分の配置場所に移動 cd /d %~dp0 set vol=nul for /f "delims=" %%a in (volume.txt) do ( rem 英語環境の場合は"SYSTEM"や、"Hidden"になるかも echo "%%a" | find "システム" >nul 2>&1 if not errorlevel 1 ( set vol=%%a ) ) if not vol==nul ( rem 半角SP+半角SP+Volumeで0~8 set vol=%vol:~9,2% echo SYSTEM Volume=!vol! ) rem スクリプト作成 echo select vol=!vol! > script.txt echo assign letter=s >> script.txt echo exit >> script.txt rem SYSTEMボリュームにレター設定 diskpart /s script.txt > diskpart.log rem あとは設定したSドライブのバックアップをDismを使用して作成する pause
Dismのコマンドは忘れたので参考URL貼っておきます
https://msdn.microsoft.com/ja-jp/library/hh825072.aspx