VB是否可以在CMD运行时读取在CMD中运行的程序的每一行输出?

时间:2014-02-12 19:17:05

标签: vb.net cmd output


我有一个VB问题,虽然我之前看过一些类似的问题,但我有点麻烦。我想知道是否可以从使用VB启动的CMD.exe中运行的外部程序读取每行输出。这是扭曲:我希望在外部程序仍在运行时读取此信息,而不是它已经完成。

我可能会对什么构成“输出”感到困惑,所以让我举一个有更多知识来指导我的人的例子。

在我的VB程序中假设我将此命令传递给CMD.exe:
someprogram.exe -param1 ABCD -param2 1234

现在假设someprogram.exe启动,并且当它完成其工作时,CMD中的以下应用程序:
输出线1
输出线2
输出线3
...

虽然someprogram.exe仍在运行,但我想阅读上面的每个输出行(如果这是正确的术语),以便我的VB程序可以将这些信息汇总给用户。我见过使用commandexecutor和其他人使用Environment.GetCommandLineArgs的例子,但我看到的每个例子都是在外部程序结束后读取输出。

有可能在VB中做我要求的吗?

1 个答案:

答案 0 :(得分:1)

如果您的应用程序使用Process.Start启动进程,您应该能够通过在ProcessInfo上设置RedirectStandardOuput并读取结果流来拦截输出流。有关c#示例,请参阅this post