2014-03-14 14 views
0

我有一個過濾Pcap文件的第一個1秒的小問題,並通過C#命令導出它。下面的命令在CMD執行就好了:如何用C#中的Tshark過濾Pcap文件的第一個1秒?

c:\Program Files\Wireshark\tshark.exe -r 10Secfile.pcap -T fields -E separator=, -E quote=d -e wlan_mgt.fixed.timestamp -e radiotap.mactime -e wlan_mgt.ssid -e radiotap.dbm_antsignal -e wlan.fc.type_subtype -R "frame.time_relative <=1.0" >> 1SecFile.txt 

但是,當我嘗試做同樣的事情在C#這樣的:

strCmdText = "/C \"c:\\Program Files\\Wireshark\\tshark.exe\" -r 10SecFile.pcap -T fields -E separator=, -E quote=d -e wlan_mgt.fixed.timestamp -e radiotap.mactime -e wlan_mgt.ssid -e radiotap.dbm_antsignal -e wlan.fc.type_subtype -R \"frame.time_relative <=1.0\" >> 1SecFile.txt"; 
System.Diagnostics.Process process = new System.Diagnostics.Process(); 
process.StartInfo = new System.Diagnostics.ProcessStartInfo("CMD.exe", strCmdText); 
process.Start(); 
process.WaitForExit(); 

我得到這個錯誤:「系統無法找到文件指定的命令「。而且我相信,所有的可執行文件的路徑發現因爲代碼就開始運行,因爲我刪除最後一個過濾器:

-R \"frame.time_relative <=1.0\" 

我甚至放在一個斷點「strCmdText =」之後和手動複製它的價值,將它粘貼到CMD中,它工作得很好。

我真的很感激,如果你能幫我弄清楚這一點。

+0

看起來像'cmd/c'這種額外的間接方式可以去掉''frame.time_relative <= 1.0「這個引起」<= 1.0「輸入重定向到」= 1.0「文件的引號, ,不存在。嘗試使用'cmd/c'在命令行上正確使用它,您可能需要使用額外的引號,然後在該命令運行後將該命令「導入」到您的c#程序中。 –

+0

謝謝@Guntram,這正是我曾嘗試在過濾器周圍使用額外引號的問題,但仍然給我提供了同樣的錯誤。 – AmGh

回答

0

首先,我要感謝@Guntram Blohm爲我提供了一個小而精彩的提示,讓我領先並搜索新主題。 I found this topic which explained my exact problem

因此,它是如添加

/S

「/ C」 之前一樣簡單。我不能相信現在一切都很完美。編輯後的線如下:

cmd /S /C "Rest of your code/Command here" 

非常感謝!

相關問題