2

フォルダー内のファイルを反復処理し、各ファイルに対してコマンドを実行する Windows バッチ ファイルがあります。具体的には、いくつかのファイルを検証するために xmllint を実行しています。

for %%i in (c:\temp\*.xml) do (
   C:\XMLLINT\xmllint -noout -schema "C:\schemas\schema.xsd" "%%~dpnxi" >> c:\output.txt
)

現在、画面に出力が表示されています。これらすべてのコマンドの出力を出力ファイルに表示したいと考えています。どうすればこれを達成できますか?追加演算子 (>>) を使用すると、空のファイルが作成される以外は何も実行されません。

xmllintのせいですか?

4

2 に答える 2

5

プログラムからのエラー出力をリダイレクトしようとしている場合は、stderrに書き込んでいる可能性があります。次のコマンドでリダイレクトを試みることができます。

for %%i in (c:\temp\*.xml) do (
   C:\XMLLINT\xmllint -noout -schema "C:\schemas\schema.xsd" "%%~dpnxi" >> c:\output.txt 2>&1
)

基本的に、最後にあるということは、 (2である)から(1である)に2>&1何かをリダイレクトすることを意味します。はファイルにリダイレクトされるため、ファイルにストリームが表示されるはずです。これがあなたのために働くことを願っています!stderrstdoutstdoutstderr

于 2012-01-12T22:05:37.727 に答える
0

使用したことはありませんが、ドキュメントがここにある場合は、「-noout」オプションを削除するか、「-output c:\output.txt」を追加してみましたか?

于 2012-01-12T21:57:28.170 に答える