【bat】バッチファイルでログファイルに実行時刻を追記して記録する方法

【bat】バッチファイルでログファイルに実行時刻を追記して記録する方法 bat

バッチファイルで処理を実行した履歴を記録しておきたい場合、ログファイルに実行時刻を追記するのが便利です。この記事では、バッチファイルを使ってログファイルに実行時刻を自動で書き込む方法をご紹介します。

実行時刻を取得してログに記録する基本構文

以下のコードをバッチファイルに記述することで、処理の実行時刻をログファイルに追記できます。

@echo off
set LOGFILE=log.txt

rem 実行時刻の取得とログ出力
echo 実行時刻: %DATE% %TIME% >> %LOGFILE%

rem 実際の処理(例)
echo バッチファイルの処理を実行中... >> %LOGFILE%

rem 任意の処理
timeout /t 3 >nul

echo 処理完了 >> %LOGFILE%
echo. >> %LOGFILE%

各行の説明

set LOGFILE=log.txt
ログファイル名を指定します。任意の名前に変更可能です。

echo 実行時刻: %DATE% %TIME% >> %LOGFILE%
現在の日付と時刻を取得し、ログファイルに追記します。

>>
出力を追記するための演算子です。>だと上書きされるので注意してください。

日付と時刻のフォーマットをカスタマイズするには?

%DATE% や %TIME% の形式は、Windowsの地域設定によって異なります。
例えば 2025/05/04 や 2025-05-04 など。必要に応じて for /f を使ってフォーマットを整えることも可能です。

例:時刻を「HH:MM:SS」だけ取得

for /f "tokens=1-3 delims=:" %%a in ("%TIME%") do (
  set HOUR=%%a
  set MINUTE=%%b
  set SECOND=%%c
)
echo 時刻: %HOUR%:%MINUTE%:%SECOND% >> %LOGFILE%

実行ログを日付ごとにファイル分けする方法

毎日異なるログファイルに記録したい場合は、以下のように日付をファイル名に含めます。

@echo off
set LOGFILE=log_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.txt
echo 実行: %TIME% >> %LOGFILE%

※ %DATE% の形式が「YYYY/MM/DD」であることを前提にしています。形式が異なる場合は調整してください。

おわりに

バッチファイルに実行時刻を追記することで、処理の履歴を簡単に残すことができます。定期実行タスクやバックアップ処理などと組み合わせれば、ログ管理がより便利になるでしょう。