バッチで簡単バックアップ
CADをはじめとするデータ作成業務では、作業中にいかなるトラブルに見舞われるかわかりません。
長い時間をかけて進めた作業も「このプログラムは応答していません」などと冷酷なメッセージを頂戴し、データが無くなってしまうこともたまにあります。貴重な時間を無駄にしないためにも、こまめなデータの「上書き保存」は必須です。
もちろん「上書き保存」は、保存した時点での最終的データです。
ところがたまにですが「計画変更」等で、「ちょっと前に戻りたい」といったことも存在します。この場合「やり直す」という作業が何とも無駄に思えます。要所要所でバックアップをとっていけば、作業の履歴が残る保存ができれば、以前の状態へ戻るのも容易にはなります。
でも保存作業に手間をかけるのもこれまた無駄です。「簡単手軽に1クリックでバックアップが取れたら・・・」と思ってwindowsのコマンドバッチを使って簡単バックアップを実行してみました。
バッチファイルをバックアップをさせたいファイルがあるフォルダに置き、実行すると同じフォルダ内に、バックアップする日付と時間を元にしたフォルダを自動で作成し、その中に該当するファイルのコピーを置きます。
サンプルでは、「.txt」「.sup」「.pin」の拡張子を持つファイルをコピーするようにしています。
固有のファイルのみコピーするのであれば「ABC.txt」のようにコピーしたいファイル名を直接指定すれば良いです。
「バッチ」ファイルは、メモ帳などのテキストエディタで、コマンドを操作順に書きならべたものです。保存する際に拡張子を「bat」とすればバッチファイルが出来上がります。
コマンドの書き方については「バッチファイル」「コマンド」などで検索すると数多くの解説サイトがヒットすると思います。
サンプル
@echo off
echo ☆★ データバックアップ(BackUP.bat) ★☆
echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo 1.バッチファイルが置かれているフォルダの直下に
echo 2.日付+時間を名前にしてフォルダを作成して、
echo 3.*.sup , *.pin , *.txtの3種類のファイルをコピーします。
echo 処理中止→画面右上の[×]をクリック
echo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
pause
pause
rem このバッチが存在するフォルダをカレントに
pushd %0\..
cls
rem 日付を取得
set DATE_A=%date:~-10,4%%date:~-5,2%%date:~-2%
rem 時間を取得
set TIME_A=%time: =0%
set TIME_B=%TIME_A:~0,2%%TIME_A:~3,2%%TIME_A:~6,2%
rem 日付+時間を名前に編入
set BACKUP1=BackUP%DATE_A%_%TIME_B%
rem 日付+時間のついたフォルダ名でフォルダを作成
md %0\..\%BACKUP1%
rem ファイルをコピー
copy *.txt %0\..\%BACKUP1%
copy *.pin %0\..\%BACKUP1%
copy *.sup %0\..\%BACKUP1%
rem 例)ABC.txt %0\..\%BACKUP1%
echo 処理終了します。
pause
exit