速い!と定評のある「FastCopy」で複数条件を連続でバックアップするバッチファイル
目次
バッチファイルで簡単にバックアップしたい
速い!で有名なファイルの高速コピーができるフリーソフト「FastCopy」ですが、GUIで操作できることはもちろん、コマンドからでも操作ができます。定期的にバックアップを取りたいHDDが複数あるのですが、毎回GUIで操作するのは面倒なので、クリック一発で複数のドライブのバックアップを簡単に行えるように、コマンドからFastCopyを起動してバックアップするバッチファイルを作ったのでメモ。
バッチファイルのソース
以下のソースは、バックアップしたい4組のコピー元とコピー先に同期コピー(sync)を順番に行います。
コピー元とコピー先の条件を増やしたり、減らしたりするだけで順番に条件を読込み、ジョブを実行します。
@echo off
:: =====================================
:: FastCopyによるバックアップ
:: =====================================
:: 開始確認
set /p YORN="開始しますか? (y or n):"
if not '%YORN%'=='y' (
echo "処理を中止します。"
goto END
)
:: 遅延環境変数(!i!)の有効化
setlocal ENABLEDELAYEDEXPANSION
:: FastCopy実行ファイル
set FastCopyPATH="C:\Program Files\FastCopy\fastcopy.exe"
:: 除外する(コピーしない)フォルダーやファイル
set Jogai="$RECYCLE.BIN\;System Volume Information;\RECYCLE?\;*\desktop.ini;*\thumbs.db;"
:: コピー元とコピー先
set FromFolder_1="F:\Music"
set ToFolder_1="L:\Backup"
set FromFolder_2="G:\Photo"
set ToFolder_2="M:\Backup"
set FromFolder_3="H:\Share"
set ToFolder_3="N:\Backup"
set FromFolder_4="I:\Video"
set ToFolder_4="O:Backup\"
:: バックアップを順番に実行
set i=1
:BEGIN
call set FromFolder=%%FromFolder_!i!%%
call set ToFolder=%%ToFolder_!i!%%
if defined FromFolder (
echo Job:!i! !FromFolder!から!ToFolder!にコピーしています。
%FastCopyPATH% /auto_close /cmd=sync /no_confirm_del /bufsize=256 /log /exclude=%Jogai% !FromFolder! /to=!ToFolder!
set /A i+=1
goto :BEGIN
)
echo.
echo バックアップが完了しました。
::スリープ
rundll32 PowrProf.dll,SetSuspendState
:END
endlocal
exit
コマンドの説明
FastCopyにバックアップを命令しているコマンドとスイッチ
以下の部分がFastCopyにバックアップを命令している部分です。
%FastCopyPATH% /auto_close /cmd=sync /no_confirm_del /bufsize=256 /log /exclude=%Jogai% !FromFolder! /to=!ToFolder!
それぞれのスイッチの意味は以下の作者のヘルプページをご参照ください。
ちなみに、/auto_closeがないと一つのバックアップ条件が終わっても、次のバックアップ条件に進んでくれません。
/cmd=syncは同期モードです。バックアップ先にファイルが無ければコピーしてくれ、コピー元から削除されたファイルがバックアップ先にあれば削除します。
/no_confirm_delは同期でコピー先のファイルを削除する際にメッセージを出さずに削除します。
コピーを除外するファイルやフォルダの指定
以下の部分はバックアップしないフォルダやファイルを指定している部分です。
set Jogai="$RECYCLE.BIN\;System Volume Information;\RECYCLE?\;*\desktop.ini;*\thumbs.db;"
複数指定したい場合は ;で区切って指定します。*はワイルドカードです。
バックアップが終わったらスリープさせる
FastCopyが速いと言ってもコピーしたいファイルの容量が巨大ですと、それなりに時間がかかります。バックアップを始めたら放置し、終わったらパソコンをスリープさせるのが以下のコマンドです。
rundll32 PowrProf.dll,SetSuspendState
シャットダウンさせたい場合はこの行を削除してshutdown /sにします。

