执行此代码时遇到问题:
Process arp = new Process();
arp.StartInfo.UseShellExecute = false;
arp.StartInfo.RedirectStandardOutput = true;
arp.StartInfo.FileName = "C://Windows//System32//cmd.exe";
arp.StartInfo.Arguments = "arp -a";
arp.StartInfo.RedirectStandardOutput = true;
arp.Start();
arp.WaitForExit();
string output = arp.StandardOutput.ReadToEnd();
MessageBox.Show(output);
程序应该将arp-a的输出放入String输出中,但它反过来给了我这个:
Microsoft Windows [版本6.1.7601] \ r \ n版权所有(c)2009 Microsoft Corporation。保留所有权利。\ r \ n \ r \ nC:\ Users \ user01 \ documents \ visual studio 2012 \ Projects \ freehotspotexploiter \ freehotspotexploiter \ bin \ Debug>
有人知道如何修复它吗?
答案 0 :(得分:4)
要将命令发送到cmd.exe作为参数,请使用“/ c”标志。
arp.StartInfo.Arguments = "/c arp -a";
答案 1 :(得分:1)
您的命令名称应为arp
而不是cmd.exe
替换它:
arp.StartInfo.FileName = "C://Windows//System32//cmd.exe";
arp.StartInfo.Arguments = "arp -a";
有了这个:
arp.StartInfo.FileName = "arp";
arp.StartInfo.Arguments = "-a";