【bat】バッチファイルでログを出力する方法

【bat】バッチファイルでログを出力する方法 bat

バッチファイルを実行する際、処理内容やエラーを記録する「ログ出力」は、トラブルシューティングや動作確認に欠かせないテクニックです。本記事では、バッチファイルでログを出力する基本から応用までを、実用的なサンプルとともにわかりやすく解説します。

ログ出力の基本 標準出力をファイルに保存する

最も基本的なログ出力の方法は、標準出力をファイルにリダイレクトすることです。

echo バッチ処理を開始します > log.txt
dir >> log.txt
echo バッチ処理が終了しました >> log.txt
  • > はファイルへの上書き
  • >> はファイルへの追記

この方法で、バッチファイル内の処理結果をテキストファイルに出力できます。

エラーも含めてログに出力する

処理中に発生するエラーもログに記録したい場合は、標準エラー出力(2)を標準出力(1)にまとめてリダイレクトする必要があります。

dir C:\存在しないフォルダ >> log.txt 2>&1

2>&1 により、エラーメッセージも log.txt に出力されます。

日付付きのログファイルを作成する

@echo off
set LOG=log_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.txt
echo 開始:%DATE% %TIME% > %LOG%
dir >> %LOG% 2>&1
echo 終了:%DATE% %TIME% >> %LOG%

例:2025年4月14日の場合、log_20250414.txt というファイル名でログが出力されます。

複数のコマンドをまとめてログに出力する

複数行に渡る処理結果を一括でログに出力したいときは、括弧を使ってコマンドをグループ化します。

(
  echo ログ出力開始
  echo 現在のディレクトリを表示
  cd
  echo ファイル一覧を表示
  dir
  echo 終了
) >> log.txt 2>&1

この方法で、処理の流れ全体をひとつのログとして残すことができます。

常に新規ログファイルを作成する方法

ログファイルが毎回上書きされるようにしたい場合は、バッチファイルの冒頭で空のログファイルを作成しておくと便利です。

echo 新規ログ > log.txt

その後の処理は >> log.txt で追記すれば、1回の実行でひとつのログファイルが完成します。

まとめ

バッチファイルのログ出力は、日々の運用やトラブル発生時の原因調査にとって非常に重要です。以下のポイントを押さえておくと、実用的なログ管理が可能になります。

  • > と >> の使い分け
  • 2>&1 によるエラー出力の記録
  • 日付によるログファイルの分割
  • 複数コマンドのまとめ出力

ログ出力を活用することで、バッチファイルの信頼性と保守性が大きく向上します。ぜひ日常のスクリプトに取り入れてみてください。