我想运行一个简单的批处理脚本,该脚本基本上只包含两个 Wireshark 命令:
@echo off
dumpcap -i 1 -f "tcp port 8800" -a "filesize:100" -n -w "data.pcap"
&&
:loop
start tshark -r data.pcap -T fields -Y "frame contains ERROR" -e data.data > data.txt
timeout /t 5
echo hi
goto :loop
但是,只有第一个命令dumpcap....
会运行。我无法让循环工作。当我将循环放在单独的批处理文件中时,它可以工作,但这不是我想要的。
答案1
您需要删除包含的行&&
。如果您从命令提示符运行脚本(而不是在 Windows 中双击它),您应该会收到此错误:
&&这时候是出乎意料的。
是&&
一个条件命令分隔符,表示“仅当执行的命令成功时才运行以下命令。”但是它本身在一行上没有任何意义。
工作脚本看起来应该是这样的:
@echo off
dumpcap -i 1 -f "tcp port 8800" -a "filesize:100" -n -w "data.pcap"
:loop
start tshark -r data.pcap -T fields -Y "frame contains ERROR" -e data.data > data.txt
timeout /t 5
echo hi
goto :loop
您可以在以下位置了解有关此命令的更多信息这个 StackOverflow 问题。