【发布时间】:2010-10-25 10:46:36
【问题描述】:
我有一个带有 Process 的应用程序,它使用 cmd 程序。 Process 的输出是这样重定向的:
pr.StartInfo.RedirectStandardOutput = true;
pr.StartInfo.UseShellExecute = false;
pr.StartInfo.CreateNoWindow = true;
pr.EnableRaisingEvents = true
pr.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
pr.OutputDataReceived += new DataReceivedEventHandler(OnDataReceived);
pr.ErrorDataReceived += new DataReceivedEventHandler(OnDataReceived);
然后使用以下命令将输出写入控制台:
public void OnDataReceived(object sender, DataReceivedEventArgs e)
{
if(e.Data != null)
{
Console.WriteLine(e.Data);
}
}
我的问题是 Visual Studio 打印输出,它与命令行输出非常不同。例如,我试图从输出中提取数据以查看已经完成了多少工作。我的应用程序输出:
0K ……………………………………………… .... 1% (null)
50K ……………………………………………… . 2% (null)
100K …………………………………………………… . 3% (null)
150K …………………………………………………………………………………………………………………………………… . 5%(空)
原始命令行程序输出(进度条和百分比随着时间的推移而累积):
100%[====================================]
这似乎没有什么大的区别,但对于我想要实现的目标而言。为什么 Visual Studio 输出与 CMD 输出不完全相同?
附言。两个示例中的参数相同。
【问题讨论】:
标签: c# visual-studio command-line process command-prompt