Batchdatei: Befehl und Schleife gleichzeitig ausführen

400
david114

Ich möchte ein einfaches Batch-Skript ausführen, das im Wesentlichen nur zwei Wireshark-Befehle enthält:

@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 

Es wird jedoch nur der erste Befehl dumpcap....ausgeführt. Ich kann die Schleife nicht zum Laufen bringen. Es funktioniert, wenn ich die Schleife in eine separate Batchdatei stecke, was ich aber nicht will.

1

1 Antwort auf die Frage

2
Twisty Impersonator

Sie müssen die Zeile entfernen, die enthält &&. Wenn Sie Ihr Skript über die Eingabeaufforderung ausführen (anstatt in Windows doppelt darauf zu klicken), sollten Sie folgende Fehlermeldung erhalten:

&& war zu diesem Zeitpunkt unerwartet.

Das &&ist ein bedingter Befehlstrenner, der "den folgenden Befehl nur dann ausführen soll, wenn der auszuführende Befehl erfolgreich war." Es hat jedoch keine Bedeutung für eine eigene Zeile.

Das Arbeitsskript sollte so aussehen:

@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 

Weitere Informationen zu diesem Befehl finden Sie in dieser StackOverflow-Frage .

das funktioniert leider nicht. Wenn der Befehl dumpcap gestartet wird, wird ein neues cmd-Fenster geöffnet und die Schleife wird vollständig ignoriert. Ich weiß nicht, wie ich das vermeiden kann. david114 vor 5 Jahren 0
Diese Information gehört in Ihre Frage. Setzen Sie "start" oder "start / w" vor den dumpcap-Befehl. Twisty Impersonator vor 5 Jahren 0