旧それなりブログの跡地、画像やスタイルやJSなどが壊れてることがあります。

[bat] 日付を付けてファイル複製をするバッチスクリプト

2012年5月12日

皆で触っているエクセルファイルを更新前にバックアップを取る
・・・そんな時に使うバッチファイルです

ソースコード

ダウンロード (右クリで保存)

::
:: backupfile.bat
::
:: `target.txt` copy to `bak\target.txt-YYYYMMDD_HHMMSS`
::
setlocal
:: Environments
set BACKUP_FILE_NAME=target.txt
set OUTPUT_DIR_NAME=bak
:: Start
set d=%date%
set t=%time%
set formattedDate=%d:~0,4%%d:~5,2%%d:~8,2%
set formattedTime=%t:~0,2%%t:~3,2%%t:~6,2%
set outputFilename=%BACKUP_FILE_NAME%-%formattedDate%_%formattedTime%
type %BACKUP_FILE_NAME% > %OUTPUT_DIR_NAME%\%outputFilename%
endlocal

使い方

1. 保存したいファイルがあるフォルダへこのバッチファイルを置きます
2. BACKUP_FILE_NAME へ保存する対象のファイル名を拡張子込みで書きます
3. 保存ファイル格納先のディレクトリを同じフォルダへ作ります
4. OUTPUT_DIR_NAME へそのフォルダ名を書きます
5. 後は backupfile.bat をクリックすればファイルがコピー保存されます

※ファイル名やフォルダ名が日本語でもとりあえず動いてるみたいです

疑問点

‘target.txt’ を置換して ‘target’ と ‘.txt’ へ分割する方法
正規表現で言う /\.[^.]+$/ がやりたい、または /\..+?$/ でも良い

robocopyコマンドを使うともっと良いらしいけど未調査

良い本があれば教えて下さい!

参考リンク

たくさんあるので、URLだけベタ貼り

http://ykr414.com/dos/dos05.html
http://d.hatena.ne.jp/soyana/20080204/1202155342
http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html
http://sgry.jp/pgarticles/batch.html
http://www.adminweb.jp/command/bat/index1.html