如何捕获进程的标准输出/错误?

时间:2010-09-03 07:02:54

标签: c# .net process stdout

如何捕获由Process.Start()启动到string的流程的标准输出/错误?

3 个答案:

答案 0 :(得分:1)

要解决死锁问题,请使用以下方法:

ProcessStartInfo hanging on "WaitForExit"? Why?

在我的代码中运作良好......

答案 1 :(得分:-1)

redirecting it并阅读信息流。

答案 2 :(得分:-1)

示例代码如下:

        ProcessStartInfo psi = new ProcessStartInfo();
        psi.CreateNoWindow = false;
        psi.UseShellExecute = false;
        psi.FileName = "C:\\my.exe";
        psi.WindowStyle = ProcessWindowStyle.Hidden;
        psi.RedirectStandardOutput = true;
        psi.RedirectStandardError = true;

        using (Process exeProcess = Process.Start(psi))
        {
            exeProcess.WaitForExit();

            var exitCode = exeProcess.ExitCode;
            var output = exeProcess.StandardOutput.ReadToEnd();
            var error = exeProcess.StandardError.ReadToEnd();

            if (output.Length > 0)
            {
                // you have some output
            }


            if(error.Length > 0)
            {
                // you have some error details
            }
        }