1

Я хочу запустить простой пакетный скрипт, который в основном включает только две команды 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 ответ1

2

Вам нужно удалить строку, содержащую && . Если вы запускаете ваш скрипт из командной строки (вместо двойного щелчка по нему в 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .