我有一個使用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