C#在使用Process类执行控制台程序时,控制台程序将在同一行上输出,C#如何才能捕获?

Process p = new Process();
p.StartInfo.FileName = "C:\TEST.EXE";
p.StartInfo.Arguments = cmd;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = false;
p.Start()

TEXE.EXE 工作时将会在同一行上面刷新进度信息,不会换行显示。我用p.StandardOutput.ReadToEnd()获取TEXT.EXE的返回数据时得等到一行TEXT.EXE输出换行,p.StandardOutput.ReadToEnd()才会结束,返回刚刚一行的数据。。

搞不定在换行之前把这一行的数据给读出来,有谁能帮帮我(╯﹏╰)

第1个回答  2013-12-03
string result = p.StandardOutput.ReadLine();追问

一样的,等到一行读取出来的时候TEXT.EXE已经输出换行了。。我要得到的是没有换行的情况下读取。。进度从0%-100%跳完之后才会输出换行

相似回答