如何用C#中的Tshark过滤Pcap文件的前1秒?

时间:2014-03-14 07:52:47

标签: cmd filtering pcap tshark

我有一个小问题,过滤Pcap文件的前1秒并通过C#命令导出它。下面的命令在CMD中执行得很好:

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中它运行正常。

如果你帮我解决这个问题,我真的很感激。

1 个答案:

答案 0 :(得分:0)

首先,我要感谢@Guntram Blohm提供了一个小而精彩的提示,让我领先去搜索新主题。 I found this topic which explained my exact problem

所以它就像添加

一样简单
  

/ S

在“/ C”之前。我无法相信现在一切都很完美。编辑后的行如下:

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

非常感谢!