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 回答