c# - Process.start:如何获得输出?

原文 标签 c# .net mono process.start

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

  • 要获取命令行 shell 输出,并将其写在我的文本框中?
  • 要获取数值以显示耗时的进度条?
  • 最佳答案

    当您创建您的 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()将字符串转换为数值。如果您读取的字符串中存在无效数字字符,您可能需要先进行一些字符串操作。

    关于c# - Process.start:如何获得输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4291912/

    相关文章:

    c# - 日期时间转换和解析 DateTime.Now.ToString ("MM/dd/yyyy hh:mm:ss.fff")

    c# - 如何使用编码的UI测试执行自己的断言

    c# - 我想压缩一个byte []并返回一个byte []

    .net - .net core 和 .net framework 的区别漏洞

    c# - SIGSEGV在System.MonoEnumInfo.get_enum_info中

    c# - 从多个线程调用 STA COM 对象的 MTA 控制台应用程序

    c# - 如果 IEnumerable<string> 只返回一个字符串怎么办

    c# - C#用于读写swf文件的开源库,支持版本8,9和10

    c# - Mono编译器生成的.exe直接从linux命令行运行,为什么?

    java - IKVM.NET作为OpenOffice的JRE