我正在通过Process.Start()
执行程序。我尝试重定向输出以获取行。
但是现在,我只需要最后一行。
有没有办法只读取最后一行,还是需要整个redirectStandaroutput = false;
等?
有更简单的方法吗?
如果我必须经过process.Redirect()
,我尝试使用outputdatareceived
事件跟踪MSDN和其他来源上的示例,但我的输出只会在结束时写入控制台而不是异步。
答案 0 :(得分:1)
使用process.Start()
后,读取输出的唯一方法就是使用.RedirectStandardInput = true;
。
由于Standart输出是一个流对象,因此只能通过读取整个流来读取最后一行。
BTW proc.StandardOutput.ReadToEnd()
将挂起你的帖子,直到进程退出,如果你在阅读过程中得到任何承诺 - 你的应用程序将挂断。