バッチファイルを使おう(初心者向け・ログ出力編)

「何でログ残してないの?」と上司や先輩から厳しいお言葉を頂いたことがある方は星の数ほどいます。バッチファイルを実行した後に、実はどこかでエラーが発生しているのに、ログファイルを出力してなくて、エラー検知が出来ないと対処しようがありません。そんなことにならないように、今回はバッチファイルを実行した時のログファイル出力を紹介します。

バッチファイルの実行ログを出力する

バッチファイルのログを出力するのはとても簡単です。「>」を記載するだけです。これだけだと分かりにくいですね。基本形は以下です。

コマンド > ログファイル名

はい、たったこれだけです。実行コマンドの後ろに「>」を記述して、出力したいファイル名を記述します。尚、ログファイルは事前に用意する必要はありません。バッチファイル実行時にログファイル出力を指定すれば勝手にログファイルを作成してくれます。試しにログを出力する簡単なバッチファイルを作成してみましょう。

echo Hello,world > result.log

pause

echoコマンドで「Hello,world」を表示させるだけのとても簡単な内容のバッチです。もちろん画面に「Hello,world」と表示されます。pauseが入っているので、任意のキーを押下するとバッチ処理が終了します。すると何という事でしょう。バッチファイルと同じディレクトリ内に「result.log」というファイルが新たに作成されています。

result.logを開いてみると、これまた「Hello,world」と記載されているだけですが、先ほどコマンドプロンプトの画面上に表示された内容をログファイルに出力することが出来ました。とても簡単なバッチファイルですが、例えば、バッチファイルからSQLのスクリプトを実行した時に、実行結果をログに出力することが出来ますので、かなり重宝します。

ログファイルに追記したい

先ほど作成した簡単なログ出力用のバッチファイルを連続で実行してみて下さい。その後でresult.logを開いてみると、「Hello,world」が1つだけ記述されています。バッチファイル実行の度に新しく作成しているため、何回実行しても「Hello,world」しか記述されていないように見えます。

しかしながら、業務上、ログファイルに追記したいことが多々あります。というかほとんどです。その場合は「>」を「>>」と記述すれば追記されます。先ほど作成したバッチファイルを少しだけ改造します。

echo Hello,world >> result.log

pause

そしてバッチファイルを3回実行すればログファイルには以下の様に出力されています。

Hello,world

Hello,world

Hello,world

ログファイルに追記したい時に>>」を活用してみて下さい。

まとめ

今回はバッチファイルの実行ログを出力する方法を紹介しました。出力方法を知っていればとても簡単なので、是非ご活用頂きたいと思います。ログファイルを都度作成したい時は「>」、追記したい時は「>>」で!