阅读STDOUT的最后一行

时间:2012-04-15 21:46:17

标签: c# .net stdout

我正在通过Process.Start()执行程序。我尝试重定向输出以获取行。

但是现在,我只需要最后一行。

有没有办法只读取最后一行,还是需要整个redirectStandaroutput = false;等?

有更简单的方法吗?

如果我必须经过process.Redirect(),我尝试使用outputdatareceived事件跟踪MSDN和其他来源上的示例,但我的输出只会在结束时写入控制台而不是异步。

1 个答案:

答案 0 :(得分:1)

使用process.Start()后,读取输出的唯一方法就是使用.RedirectStandardInput = true;。 由于Standart输出是一个流对象,因此只能通过读取整个流来读取最后一行。

BTW proc.StandardOutput.ReadToEnd()将挂起你的帖子,直到进程退出,如果你在阅读过程中得到任何承诺 - 你的应用程序将挂断。