batファイル内で、指定ディレクトリをzip圧縮バックアップします。
以下のように書いてみました。
atbackup.zip
・ディレクトリをdaily.zipという名前で上書きバックアップ
・月に一度、yyyymm.zipの名前でバックアップを蓄積
・開始時間、終了時間、7-zipログを、log.txtに書き出し
んで、これを平日深夜1時に実行するようatに登録します。
at 01:00 /every:M,T,W,Th,F cmd.exe /c c:\backup\atbackup.bat
以下、batファイル
(コマンドブロンプトって、「rem」でコメント行なんですね。remって何の略だろ)
rem ▼概要===========================================================
rem 指定ディレクトリをzip圧縮してdaily(日々上書き)、monthlyで保存する
rem atコマンドによるスケジュール実行用
rem ▼使い方=========================================================
rem ↓設定で各ディレクトリのパスを指定
rem zip圧縮ソフトの7.zipのコマンドライン版(7za.exe)を
rem http://www.7-zip.org/ja/から持ってきて、設定の「zip」にパスを指定
rem コマンドブロンプトのatコマンド(タスクスケジューラ)にてこのbatを登録する
rem
rem atコマンドの使い方は、以下の通り
rem 閲覧:at
rem 登録:at [time] /every:[起動したい曜日カンマ区切り] cmd.exe /c [batのファイルパス]
rem 削除:at [番号] /delete
rem
rem 例 :at 01:00 /every:M,T,W,Th,F cmd.exe /c c:\backup\atbackup.bat
rem (平日、月〜金の01時に実行する)
rem ▼設定===========================================================
rem 【必須】バックアップするディレクトリ
set target="C:\Documents and Settings\My Documents\Visual Studio 2005\Projects\"
rem 【必須】バックアップするファイルの拡張子(*.txt、etc)
rem 全ての場合は「*」(「*.*」ではない)
set ext_tr="*"
rem 【必須】除外する拡張子(*.txt、etc)
rem 特にない場合は「none.none」とかテキトーに。空白は不可。
set ext_x="*.exe"
rem 【必須】ログやバックアップファイルを保存するディレクトリ
set logdir="c:\backup\VisualStudio2005\"
rem 【必須】7zip(コマンドライン用)ファイル名
set zip="c:\7za.exe"
rem バックアップファイル拡張子
set ext_bu=".zip"
rem ログファイル名
set logfile="log.txt"
rem ▼実行==========================================================
set daily=%logdir%daily%ext_bu%
set monthly=%logdir%%date:~0,4%%date:~5,2%%ext_bu%
echo start time : %date% %time% > %logdir%\%logfile%
echo target=%target% >> %logdir%\%logfile%
echo logdir=%logdir% >> %logdir%\%logfile%
if exist %daily% del %daily%
%zip% a -tzip %daily% %target%%ext_tr% -x!%ext_x% -r >> %logdir%%logfile%
if not exist %monthly% copy /b %daily% %monthly% /b
echo end time : %date% %time% >> %logdir%\%logfile%