Windowsバッチ処理のエラーメッセージをテキストファイルに出力する方法

Windowsバッチ処理のエラーメッセージをテキストファイルに出力する方法

Windowsコマンドでバッチ処理を実行したとき、一瞬画面に表示されるエラーメッセージは標準出力でテキストに出力されません。例えば、オラクルのSQLコマンドをWindowsバッチ処理で実行したときのエクスポートエラーがテキスト出力したメッセージの中に表示されていないといった事例です。

そのエラーメッセージをテキストファイルへ出力する方法を解説します。

Windowsバッチ処理のエラーメッセージをテキストファイルに出力する方法

バッチ処理の実行結果をテキストファイルに出力する方法として「 > 」(リダイレクト)が用いられます。これを「 2> 」(数字の2と>をつなげて入力)に変更すると、エラーメッセージがテキストファイルへ出力されるようになります。

C:¥test.bat 2> C:¥err.log

上記のように「test.bat」で実行したときに出力される「処理結果」や「エラーメッセージ」が「err.log」というテキストファイルへ出力されます。

実行例
下記メッセージは、オラクルのSQLコマンドを定義したバッチ処理を実行した結果です。定義ミスで発生したエラーやオラクルエラー、正常な結果メッセージまですべての結果がテキストファイルに出力されるので、エラーコードを後で確認する等に利用できます。

– – – – –

サブディレクトリまたはファイル DBout は既に存在します。
サブディレクトリまたはファイル logs は既に存在します。

Export: Release 12.1.0.1.0 – Production on 木 1月 12 17:24:46 2017

Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.

EXP-00028: 書込み用のD:\work_DB\logs\AFTER_Export\BSEHLOG.logのオープンに失敗しました
EXP-00000: エラーが発生したためエクスポートを終了します。

Export: Release 12.1.0.1.0 – Production on 木 1月 12 17:24:46 2017

Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.

接続先: Oracle Database 12c Release 12.1.0.1.0 – 64bit Production
JA16SJISTILDEキャラクタ・セットおよびAL16UTF16 NCHARキャラクタ・セットでエクスポートを実行します

指定された表をエクスポートします… 従来型パス経由…
.. 表 BUIDCDMをエクスポート中 11行エクスポートされました。
エクスポートは警告なしで正常終了しました。

Export: Release 12.1.0.1.0 – Production on 木 1月 12 17:24:46 2017

Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.






Windowsコマンドの「標準出力」と「標準エラー出力」

先に説明した通り、バッチ処理の実行結果をテキストファイルに出力する方法として「 > 」(リダイレクト)が用いられます。「 > 」で出力される出力を「標準出力」、前述の「 2> 」で出力される正常メッセージやエラーメッセージを「標準エラー出力」と言います。

標準出力の例は、以下の通りです。

C:¥test.bat > C:¥kekka.log

test.batに「dir /s」コマンドを定義して実行すると、以下の通り、dir /sコマンドの実行結果が出力されます。

実行例
C:¥test.bat > C:¥kekka.log

「kekka.log」をメモ帳で開くと、以下のようなdirコマンドの結果が格納されています。

C:\tmp>dir /s
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は B82D-01CD です

C:\tmp のディレクトリ

2017/02/11 15:52

.
2017/02/11 15:52 ..
2017/02/11 15:52 0 kekka.log
2017/02/11 15:51 6 test.bat
2 個のファイル 6 バイト

ファイルの総数:
2 個のファイル 6 バイト
2 個のディレクトリ 223,640,846,336 バイトの空き領域

スポンサーリンク

シェアする

フォローする