我有一个使用cmd程序的Process
应用程序。进程的输出重定向,像这样:C# - 进程重定向输出 - 与CMD窗口不同的控制台
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%(null)
最初的命令行程序输出(进度条随着时间的推移累计百分比):
100%[===================================]
这似乎不是一个很大的区别,但对于我试图达到的目标是。为什么Visual Studio的输出与CMD完全不一样?
Ps。两个例子中的参数都是相同的。
它是wput,而不是wget。不知道有多少差异。 – nf313743 2010-10-25 10:53:43
'wput'也一样。你有没有试过添加进度条参数? – 2010-10-25 10:54:31
是的。不幸的是,wput并没有提供这个参数: – nf313743 2010-10-25 11:04:30