2017-11-23 14 views
0

XSLT変換を行うためにSaxonを呼び出すバッチファイルがあります。いくつかのファイルについて、Saxonは私にエラーを与えます。これは約1秒間開いている新しいコマンドラインウィンドウに表示され、閉じます。私はそのエラーメッセージをファイルに取り込もうとしています。バクションファイルからSaxonを実行する:エラーをキャプチャする方法は?

これは、バッチファイルの関連部分である:

start /wait "" "C:\Program Files\Saxonica\SaxonHE9.6N\bin\Transform.exe" -s:"file.xml" -xsl:fixerrors.xslt -o:"output.xml" 1>>fixerrors.log 2>&1 

fixerrors.logファイルが作成されますが、サクソンは、エラーが発生し、新しいコマンドラインウィンドウを作成する場合でも、空のまま。

このように別のプログラムからエラーメッセージを取得できたので、1>>fixerrors.logというアイデアはそれ自体が間違っていません。これはサクソン特有のようです。 @Gerhardバーナードによって提案された二つのアプローチしようとしました

+0

これを試して、内容を含むログを開くかどうかを確認してください。 'start/wait" "" C:\ Program Files \ Saxonica \ SaxonHE9.6N \ bin \ Transform.exe "-s:" file.xml " xsl:fixerrors.xslt -o: "output.xml"> fixerrors.log 2>&1&fixerrors.log&typeと入力します。エラーを表示するためにウィンドウを開いたままにする必要があります。 –

+1

また、startを使う必要はありません。パスと実行ファイルだけを呼び出すこともできます。 –

答えて

0

start /wait "" "C:\Program Files\Saxonica\SaxonHE9.6N\bin\Transform.exe" -s:"%~n1 - original.xml" -xsl:fixerrors.xslt -o:"%~n1.xml" 1>>fixerrors.log 2>&1 & type fixerrors.log 

は動作しませんが、サクソンのエラーがログファイルに配置されていません。

"C:\Program Files\Saxonica\SaxonHE9.6N\bin\Transform.exe" -s:"%~n1 - original.xml" -xsl:fixerrors.xslt -o:"%~n1.xml" 1>>fixerrors.log 2>&1 

が作業を行い、エラーメッセージが(私は、ファイルに標準エラーと標準出力の両方をリダイレクトしていますので、実際には、彼らは二回置かれている)、ログファイルに配置されています。

関連する問題