[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 をクリックすればファイルがコピー保存されます
2. BACKUP_FILE_NAME へ保存する対象のファイル名を拡張子込みで書きます
3. 保存ファイル格納先のディレクトリを同じフォルダへ作ります
4. OUTPUT_DIR_NAME へそのフォルダ名を書きます
5. 後は backupfile.bat をクリックすればファイルがコピー保存されます
※ファイル名やフォルダ名が日本語でもとりあえず動いてるみたいです
疑問点
‘target.txt’ を置換して ‘target’ と ‘.txt’ へ分割する方法
正規表現で言う /\.[^.]+$/ がやりたい、または /\..+?$/ でも良い
正規表現で言う /\.[^.]+$/ がやりたい、または /\..+?$/ でも良い
robocopyコマンドを使うともっと良いらしいけど未調査
良い本があれば教えて下さい!