【问题标题】:Read last line of STDOUT读取 STDOUT 的最后一行
【发布时间】:2012-04-15 21:46:16
【问题描述】:

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

不过,现在我只需要最后一行。

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

有没有更简单的方法?

如果我必须通过 process.Redirect(),我尝试按照 MSDN 上的示例和其他具有 outputdatareceived 事件的来源,但我的输出仅在最后写入控制台并且不是异步的。

【问题讨论】:

  • 不,没有更简单的方法。您需要阅读整个输出并简单地丢弃除最后一行之外的所有内容。
  • 感谢服务。我会阅读完整的操作。
  • 或者您可以使用 StreamReader.ReadLine() 逐行读取 -> gamedev.net/topic/…

标签: c# .net stdout


【解决方案1】:

一旦你使用process.Start(),我知道读取输出的唯一方法就是使用.RedirectStandardInput = true;。 由于标准输出是一个流对象,最后一行只能通过读取整个流来读取。

顺便说一句,proc.StandardOutput.ReadToEnd() 将挂起您的线程,直到进程退出,如果您在阅读过程中收到任何提示 - 您的应用程序将挂起。

【讨论】:

    猜你喜欢
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多