【发布时间】:2020-03-11 14:29:28
【问题描述】:
我想使用以下命令将 .pcapng 文件转换为 .csv 文件:
> cd C:\Program Files\Wireshark
> tshark -r output.pcapng -T fields -e frame.number -e eth.src -e eth.dst -e frame.len -e frame.time -e frame.time_relative -e data -E header=y -E separator=, > output.csv
在 C# 中,我使用了以下代码。
string command = @"cd C:\Program Files\Wireshark & tshark -r output.pcapng -T fields -e frame.number -e eth.src -e eth.dst -e frame.len -e frame.time -e frame.time_relative -e data -E header=y -E separator=, > output.csv";
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "CMD.exe";
startInfo.Arguments = command;
startInfo.Verb = "runas";
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
这似乎不起作用。
【问题讨论】:
-
如果它不起作用,您应该会收到某种错误消息或其他指示它不起作用。您应该在问题中说明这一点。
-
你只想运行wireshark,为什么还要启动一个shell (cmd.exe)?
-
@RobertHarvey 没有。我没有收到任何错误。在一毫秒内,一个窗口在执行完最后一行即WaitForExit后打开和关闭。
-
@Neil 我想将 .pcapng 转换为带有过滤器的 csv 文件,这是执行此操作的命令。
-
您正试图从 shell 中启动 tshark,这使得获取正确参数变得更加棘手。由于我猜您这样做只是为了说服 tshark 写入文件,因此请考虑将
-w output.csv参数添加到 tshark 命令中。那么你可能根本不需要 shell。