2

我发现了一些这样的代码。它运行一个进程,然后将它写入的内容打印到标准输出。问题是,在进程退出之前它不会打印任何东西,这可能需要很长时间(或根本不需要)。因此,我宁愿按原样打印输出。我怎样才能做到这一点?

var startInfo = new ProcessStartInfo("cmd", "/c sleepy.bat")
    {RedirectStandardOutput = true, UseShellExecute = false, CreateNoWindow = true };
var p = new Process(){StartInfo = startInfo};
p.Start();
string output = p.StandardOutput.ReadToEnd();
Console.WriteLine(output);

sleepy.bat可能在哪里

echo "About to execute really slow query.."
sleep 20
echo "Finished!"
4

1 回答 1

2

尝试使用p.StandardOutput.BeginOutputReadLine(). 您将收到来自OutputDataReceived事件进程的输出。

有关扩展示例,请查看MSDN 文章

于 2013-04-10T09:21:48.740 回答