このサイトは思いのほかDOSバッチファイル系の記事へのアクセスが多いです。
そこで、ファイルのバックアップを世代管理できるバッチファイルを公開します。
従来の世代管理方法だと拡張子を変更してしまうので、内容確認にひと手間かかってしまいます。
そこで拡張子はそのままでローテートするバッチファイルも作りました。
◆ダウンロード
http://typista.it-creates.com/wp-content/uploads/rotate.bat.txt
ダウンロード後、rotate.bat.txtをrotate.batにリネームしてください。
このバッチファイルはどこに保存しても構いません。
ショートカットをSendToに入れる等で、このバッチファイルにローテートしたいファイル(例えば hoge.xls)をドロップすれば、そのファイルと同じ階層にコピー&ローテート(例えば hoge.20120803.xls)されます。
なお、ディレクトリには対応していません。
使い方は、バックアップしたいファイル(ディレクトリには対応していません)を、このfilecopy.batにドラッグ&ドロップするだけです。
SendToフォルダにショートカットを入れておくと少し便利です。
◆実行例
hoge.txt を 2009年10月1日に実行した場合
hoge.txt.20091001というファイル名でコピー(バックアップ)されます。
hoge.txt を 2009年10月1日にもう1回(=2回目)実行した場合
hoge.txt.20091001_1というファイル名でコピー(バックアップ)されます。
hoge.txt を 2009年10月1日にもう1回(=3回目)実行した場合
hoge.txt.20091001_2というファイル名でコピー(バックアップ)されます。
以下、動作確認はWindowsXPのみです。
filecopy.bat(ダウンロード後、filecopy.bat.txtをfilecopy.batにリネーム)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
@echo off IF NOT EXIST %1 goto :EOF SET DT=%DATE:~-10% SET TM=%TIME:~-11% SET F_DATE=%DT:~0,4%%DT:~5,2%%DT:~8,2% SET F_HOUR=%TM:~0,2% IF "%F_HOUR:~0,1%" == " " SET F_HOUR=0%F_HOUR:~1,2% SET F_TIME=%F_HOUR%%TM:~3,2%%TM:~6,2% SET DST_NAME=%1.%F_DATE% SET DST_NAME_TEMP=%DST_NAME% SET CNT=0 :LBL1 IF NOT "%CNT%" == "0" SET DST_NAME_TEMP=%DST_NAME%_%CNT% IF EXIST %DST_NAME_TEMP% set /a CNT=%CNT%+1 IF EXIST %DST_NAME_TEMP% goto LBL1 SET DST_NAME=%DST_NAME_TEMP% copy %1 %DST_NAME% SET DST_NAME= SET CNT= |
No comments yet. You should be kind and add one!
By submitting a comment you grant typista a perpetual license to reproduce your words and name/web site in attribution. Inappropriate and irrelevant comments will be removed at an admin’s discretion. Your email is used for verification purposes only, it will never be shared.