2014/02/08

バッチファイルで日付(yyyymmdd)、時間(hhmiss)を取得する

 例えばバッチファイルでデータのバックアップをするとき、起動時の日時をファイル名に付与することはよくある。
以下、日付、時間を取得する方法をまとめる。


日付、時間を取得する



日付や時間を取得するときは以下のようにできる。
※ECHOはコマンドプロンプトに表示するため

ECHO %DATE%
ECHO %TIME%

しかし、このままではyyyy/MM/ddH:mm:ss.ffとなり、フォルダ名やファイル名に指定することができない。



スラッシュ、コロンを取り除く



そこで、スラッシュ(/)やコロン「:」を取り除かなければならない。
以下がその方法だ。

%string:~start, length%

start = 開始位置
  startが正の場合、stringの0から数えてstart番目が開始位置となる
  startが負の場合、stringの後ろから数えてstart番目が開始位置となる

length = 抽出文字数
  lengthが省略された場合、stringをstartから最後まで抽出する
  lengthが指定された場合、stringをstartからlength分まで抽出する

ECHO %DATE:~-10,4%%DATE:~-5,2%%DATE:~-2%
ECHO %TIME:~0,2%%TIME:~3,2%%TIME:~6,2%


フォルダ名に日時を入れるサンプルプログラム


@ECHO OFF

SET BACKUPDIR="D:\Backup\"
MKDIR %BACKUPDIR%%DATE:~-10,4%%DATE:~-5,2%%DATE:~-2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%

REM 以下、バックアップ処理 



以上

0 件のコメント :

コメントを投稿