如何解析实时cmd输出并在文本框中显示。实施例
wkhtmltopdf http://www.google.com output.pdf
在cmd中给出以下内容
Loading pages (1/6)
[> ] 0%
[======> ] 10%
[=============> ] 23%
[==================> ] 30%
[==============================> ] 51%
[=================================> ] 56%
[==================================> ] 58%
[========================================> ] 68%
[===============================================> ] 79%
[================================================> ] 81%
[==================================================> ] 84%
[============================================================] 100%
Counting pages (2/6)
[============================================================] Object 1 of 1
Resolving links (4/6)
[============================================================] Object 1 of 1
Loading headers and footers (5/6)
Printing pages (6/6)
[> ] Preparing
[============================================================] Page 1 of 1
Done
我想解析上面的内容并在一个文本框中显示步骤(加载,计数....),并在%中使用数字,使用()中的数字,另一个文本框中的数字和另一个文本框中的页数。
我尝试根据我的需要修改此How to parse command line output from c#?的答案,但它无法成功。然后我读了一些我需要使用BackgroundWorker的地方并试图修改和使用http://www.codeproject.com/Articles/99143/BackgroundWorker-Class-Sample-for-Beginners中的代码但是失败了。
答案 0 :(得分:0)
您可以像这样使用pProcess.StandardOutput.ReadToEnd();
:
public void GetMacAddress(string ipAddress)
{
string macAddress = string.Empty;
System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
pProcess.StartInfo.FileName = "arp";
pProcess.StartInfo.Arguments = "-a " + ipAddress;
pProcess.StartInfo.UseShellExecute = false;
pProcess.StartInfo.RedirectStandardOutput = true;
pProcess.StartInfo.CreateNoWindow = true;
pProcess.Start();
string strOutput = pProcess.StandardOutput.ReadToEnd();
Textbox.text = strOutput;
}
更新:
类system.io.streamreader
也有方法ReadLine()
,您应该尝试将其作为pProcess.StandardOutput属于此类型
https://msdn.microsoft.com/en-us/library/system.io.streamreader(v=vs.110).aspx