我正在使用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
{
}
答案 0 :(得分:1)
您需要使用输出重定向。见这里:http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput.aspx
答案 1 :(得分:0)
您可以将输出重定向到您想要的任何内容...例如流...如果您愿意,您甚至可以在单独的线程中处理输出 - 对于源代码和详细信息,请参阅http://www.codeproject.com/KB/threads/ReadProcessStdoutStderr.aspx