VMをバッチでバックアップする際の注意メモ

バッチ処理でVMを終了、起動などさせると、バッチファイルの処理がそこで終了してしまい、その後の行が実行されない模様。
つまり、
・VM終了→xcopy→VM起動→7z圧縮
という1つのバッチファイルvmbackup.batを作ると、VM終了の部分で処理が終了してしまい、次のxcopy以下が走らない模様。

なんとかならないか試していたら、どうやらcallで飛ばしてしまえば継続処理可能な模様。
つまり、
・VM終了用のバッチvmbackup1.bat
・xcopy→VM起動のバッチvmbackup2.bat
・7z圧縮用のバッチvmbackup3.bat
を作っておき、
 call vmbackup1.bat
 call vmbackup2.bat
 call vmbackup3.bat
という記述のvmbackup.batを作る。
このvmbackup.batを実行すれば、途中で終了せずに、vmbackup1.bat→vmbackup2.bat→vmbackup3.batと完走する。
VM処理の部分で切ってしまえばいいらしい。

vmbackup.batの内容を
 call vmbackup1.bat > vmbackup_log.txt
 call vmbackup2.bat >> vmbackup_log.txt
 call vmbackup3.bat >> vmbackup_log.txt
というようにしておけば、ログの作成も出来る。

VM終了から7z圧縮まで稼動確認。あとは世代管理ローテーションができればバックアップが完成する。詳しい原理は知らないが、うまくいったからこれでいいや。