Windows(へたれな)コネタ DOSのバッチファイル内で日時を反映したファイル名を生成する方法

日々のデータベースのダンプファイル作成やログファイル作成に使える小技です。

SET YYYYMMDD=%DATE:/=%
SET HHMMSS=%time::=%
SET TMSMP0=%YYYYMMDD:~4,8%_%HHMMSS: =0%
SET TMSMP=%TMSMP0:~0,9%
SET DMPFILE=DbSserver_%TMSMP%.dmp

結果例

echo %DMPFILE%
DbSserver_0526_1122.dmp.log

となります。

ポイントは、環境変数を展開する時に文字列の一部分を取り出せたり
置換出来ることでしょう。

「:」の除外

%time::=%

部分的取り出し

%YYYYMMDD:~4,8%

一桁の時刻には頭に空白がついてしまうため、0埋め

%HHMMSS: =0%

最後に、これらは、

SET /?

で簡易的なHELPを参照できます。
Windows2000Serverファイル名にタイムスタンプをつける
バッチ・ファイル中で日付をファイル名に使用する