2011-06-17 9 views
1

"test.exe"(コンソールアプリケーション)のプログラムに結果を出力する方法を教えてください。">"をProcess.Startインスタンスに追加する

など。通常、プログラムはプロンプトでtest.exe> output.txtを実行することによってデータを出力することができます。

これはどのようにしてこのステートメントで実行できますか?

コード内のことができます。
Process.Start("test.exe", "\"" + exename + "\"").WaitForExit(); 
+0

あなたはしません。プロセスは標準出力に書き込み、シェル(または他の呼び出し側)は標準出力をリダイレクトします。 –

答えて

3

出力をファイルにリダイレクトしたい場合は、「配管」と呼ばれます。その場合は、cmd.exeに要求することができます。すなわち

Process.Start("cmd.exe", "/c test.exe \"" + exename + "\" > D:\\testOutput.txt").WaitForExit(); 
+0

thats ;;) – Tom

+0

これです。 ">"はプログラムではなくコマンドラインで解釈されるので、プロジェクタを直接呼び出すのではなく、CMD.EXEに指示してください。 – KeithS

+0

@KeithS明確化のおかげで、それは今私の心の中で意味がある:) – Tom

7

は、MSDNのページから、この例のようにStandardOutputプロパティを使用します。

// Start the child process. 
Process p = new Process(); 
// Redirect the output stream of the child process. 
p.StartInfo.UseShellExecute = false; 
p.StartInfo.RedirectStandardOutput = true; 
p.StartInfo.FileName = "Write500Lines.exe"; 
p.Start(); 
// Read the output stream first and then wait. 
string output = p.StandardOutput.ReadToEnd(); 
p.WaitForExit(); 

あなたがProcessStartInfoRedirectStandardOutputプロパティを設定する必要が見ることができるように。

+0

既存のプロセスラインに> output.txt演算子を追加するだけですか? – Tom

+0

@Tom - おそらく。 – ChrisF

関連する問題