2010-12-07 13 views
2

msbuild "Exec"タスクを使用してコマンドを実行しています。しかし、私はstdio出力をコンソールから表示するコマンドから生成されたが、それを抑えるためにとにかくありませんか?msbuildのExecタスクによる出力の抑制

Execタスクを使って "cmd.exe"をmyコマンドexeで呼び出す行に沿ったものがターゲットであり、 ">"を使用して出力を別の場所にリダイレクトすることがあります。 (しかし私はこの解決策を働かせることができません)。

すなわち

<Exec Command="cmd.exe sqlplus.exe $(someCommandSpecificSettings) &lt; test.txt"/> 

どれでも動作するように私の例を取得するための提案や選択肢?

答えて

1

[OK]を、それを考え出した... cmd.exeの私は、すなわち欲しいもののために働く/ C引数を必要:

また、&gt;の代わりにする必要がありますちょうどあなたの情報について&lt;

<Exec Command="cmd.exe /c sqlplus.exe $(someCommandSpecificSettings) &gt; test.txt"/> 
0

これを試してみてください:

<Exec Command="cmd.exe sqlplus.exe $(someCommandSpecificSettings) &lt; test.txt >nul"/> 
+0

いいえ、動作しません..「システムはファイル指定のファイルを見つけることができません」というメッセージが表示されます。 – vicsz

+0

そのメッセージは、あなたが '間違っているので、' test.txt 'が入力として読み取れないことを伝えています。 –

7

  • >(&gt;)あなたが後に指定したファイルに出力をリダイレクトする(必要に応じて上書き)
  • >>(上書きされない)の後に、指定したファイルに出力を追加
  • <あなたのコマンドに標準入力をリダイレクト(基本的にファイルの内容をコマンドに渡します)

コードでは、test.txtファイルを作成(一度)して置き換えます。ファイル名を使用する代わりに、どこにもリダイレクトすることを意味するNULを使用することができます。あなたのことも

<Exec Command="cmd.exe /c sqlplus.exe $(someCommandSpecificSettings) &gt; NUL 2$gt;errors.txt"/> 

注:

<Exec Command="cmd.exe /c sqlplus.exe $(someCommandSpecificSettings) &gt; NUL"/> 

あなたが同様のエラーをリダイレクトしたい場合は、あなたのような> 2を使用します。これは、(いくつかのケースでは、巨大なことができる)ファイルを作成しません2> & 1を使用してstderrをstdoutにリダイレクトできます。したがって、> NUL 2>&1はすべてをどこにもリダイレクトしません。

ホープこれはあなたの心^^

+0

**警告:** 'NUL'へのリダイレクトはWindowsでは動作し、Linuxでは動作しません。 – starbeamrainbowlabs

0

Execタスクまたは出力の重要性を低下させることであるToolTaskから継承任意のタスクから標準出力と標準エラー出力を抑制するための最良の方法を明確にしています。そうすれば、ビルドをデバッグしている場合、これらの出力をnulにリダイレクトするので、これらの出力は完全に隠されません。

<Exec Command="sqlplus.exe" StandardOutputImportance="low" StandardErrorImportance="low"/> 
関連する問題