バッチファイルでログのファイル名に日付・時間をつける方法
日付:YYYYMMDD(年月日)形式を設定その1
forコマンドを使う
for /F "eol=;tokens=1,2,3,4*delims=/, " %i in ('date /t') DO SET YYYYMMDD=%i%j%k
実行結果
D:\workspace\batch_SandBox\>for /F "eol=;tokens=1,2,3,4*delims=/, " %i in ('date /t') DO SET YYYYMMDD=%i %j%k D:\workspace\batch_SandBox\>SET YYYYMMDD=20101203 D:\workspace\batch_SandBox\>set YY YYYYMMDD=20101203
日付:YYYYMMDD(年月日)形式を設定その2
以下でもできる。
set YYYY=%Date:~0,4% set MM=%Date:~5,2% set DD=%Date:~8,2% set YYYYMMDD=%Date:~0,4%%Date:~5,2%%Date:~8,2%
実行結果
D:\workspace\batch_SandBox\>set YYYY=%Date:~0,4% D:\workspace\batch_SandBox\>set MM=%Date:~5,2% D:\workspace\batch_SandBox\>set DD=%Date:~8,2% D:\workspace\batch_SandBox\>set YY YYYY=2010 D:\workspace\batch_SandBox\>set MM MM=12 D:\workspace\batch_SandBox\>set DD DD=03
時間:HHMM(時分)形式を設定
for /F "eol=;tokens=1,2,3*delims=:, " %i in ('time /t') DO SET HHMM=%i%j
実行結果
D:\workspace\batch_SandBox\>for /F "eol=;tokens=1,2,3*delims=:, " %i in ('time /t') DO SET HHMM=%i%j D:\workspace\batch_SandBox\>SET HHMM=2337 D:\workspace\batch_SandBox\>set HH HHMM=2337
ログ出力
設定した環境変数をファイル名に指定して出力する。
echo test >%YYYYMMDD%%HHMM%.log
出力例
D:\workspace\batch_SandBox\>echo test >%YYYYMMDD%%HHMM%.log D:\workspace\batch_SandBox\>type 201012032337.log test
バッチファイルで実行するときの注意
バッチファイルで実行する場合には、上記の例の%を%%にする必要がある。
REM YYMMDDHHMMの形式の形式を設定する @ECHO OFF For /F "eol=;tokens=1,2,3,4*delims=/, " %%i in ('date /t') DO SET YYYYMMDD=%%i%%j%%k For /F "eol=;tokens=1,2,3*delims=:, " %%i in ('time /t') DO SET HHMM=%%i%%j set YYYYMMDDHHMM=%YYYYMMDD%%HHMM% echo test >%YYYYMMDDHHMM%