一尘不染

Process.start:如何获取输出?

c#

我想从我的Mono / .NET应用程序运行一个外部命令行程序。例如,我想运行 mencoder 。可能吗:

  1. 要获取命令行shell输出,并将其写在我的文本框中?
  2. 要获取数值以显示经过时间的进度条?

阅读 684

收藏
2020-05-19

共1个答案

一尘不染

适当地创建Process对象集时StartInfo

var proc = new Process 
{
    StartInfo = new ProcessStartInfo
    {
        FileName = "program.exe",
        Arguments = "command line arguments to your executable",
        UseShellExecute = false,
        RedirectStandardOutput = true,
        CreateNoWindow = true
    }
};

然后开始该过程并从中读取:

proc.Start();
while (!proc.StandardOutput.EndOfStream)
{
    string line = proc.StandardOutput.ReadLine();
    // do something with line
}

您可以使用int.Parse()int.TryParse()将字符串转换为数字值。如果读取的字符串中包含无效的数字字符,则可能必须先进行一些字符串操作。

2020-05-19