2014-11-06 73 views
0

以下是我的代码。 我的代码中是否有错误或遗漏?如何在C#中运行tracetcp并获取输出结果?

using (Process p = new Process()) 
{ 
    string strCmdText = string.Empty; 
    p.StartInfo.FileName = "CMD.exe"; 
    p.StartInfo.RedirectStandardOutput = true; 
    p.StartInfo.UseShellExecute = false; 
    p.StartInfo.Arguments = "tracetcp vrtpmkap2001:445"; 
    p.Start(); 
    string q = string.Empty; 
    while (!p.HasExited) 
    { 
     q += p.StandardOutput.ReadToEnd(); 
    } 
    string r = q.ToString(); 
} 

我无法得到tracetcp的输出。

回答

0

使用此代码:

string cmd = "/c tracetcp vrtpmkap2001:445" ; 
System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
proc.StartInfo.FileName = "cmd.exe" 
proc.StartInfo.Arguments = cmd; 
proc.StartInfo.UseShellExecute = false; 
proc.StartInfo.RedirectStandardOutput = true; 
proc.Start(); 
string output = proc.StandardOutput.ReadToEnd(); 
0

谢谢大家。

我已经找出问题所在。 当c#运行一个cmd.exe它使用SysWOW64 cmd.exe

我只是在SysWOW64文件夹中添加tracetcp.exe。

相关问题