我有一个小问题,过滤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中它运行正常。
如果你帮我解决这个问题,我真的很感激。
答案 0 :(得分:0)
首先,我要感谢@Guntram Blohm提供了一个小而精彩的提示,让我领先去搜索新主题。 I found this topic which explained my exact problem
所以它就像添加
一样简单/ S
在“/ C”之前。我无法相信现在一切都很完美。编辑后的行如下:
cmd /S /C "Rest of your code/Command here"
非常感谢!