2

Process.Start(ProcessStartInfo) を使用してプロセスを開始しています。現在、コンソール ウィンドウが表示され、プロセスが完了するまでプロセスの出力がそこに表示されます。プロセスが完了すると、コンソール ウィンドウは自動的に閉じます。

プロセスは大量のテキストを出力するため、これまでに見つけた例のように、この出力を文字列にリダイレクトしたくありません。

コンソール出力のテキストをテキスト ログ ファイルに記録するにはどうすればよいですか?

ProcessStartInfo myPSI = new ProcessStartInfo();
myPSI.FileName = myFileName;
myPSI.Arguments = myArgs;
myPSI.CreateNoWindow = false;
myPSI.UseShellExecute = false;
myPSI.WindowStyle = ProcessWindowStyle.Hidden;

try
{
  using (Process exeProcess = Process.Start(myPSI))
  {
    exeProcess.WaitForExit();
  }
}
catch
{
}
4

2 に答える 2

1

出力リダイレクトを使用する必要があります。ここを参照してください: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput.aspx

于 2011-10-24T15:44:20.103 に答える
0

出力を必要なものにリダイレクトできます...たとえば、ストリーム...必要に応じて、別のスレッドで出力を処理することもできます-ソースコードと詳細については、http://www.codeproject.com/を参照してくださいKB/threads/ReadProcessStdoutStderr.aspx

于 2011-10-24T15:44:55.493 に答える