Wenn Sie mehrere Befehle mit 1 Zeile ausführen wollen, wobei Sie die Befehle mit start
beginnen, wenn Sie z. B. einen Befehl wie diesen ausführen wollten:
start "" netsh dump && pause
Dann müssen Sie dies in 2 Schritten tun (die einzeilige Lösung finden Sie am Ende dieser Antwort).
Zuerst schreiben Sie die Befehle in eine temporäre Stapeldatei (in diesem Fall können Sie &
oder &&
verwenden):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd
Beachten Sie, dass Sie jedes der "&"s
(Ampersands) mit einem "^"
“entkommen” lassen müssen, damit sie als normale Zeichen im echo
-Befehl behandelt werden. Alternativ können Sie die temporäre Stapeldatei mit einem Texteditor wie Notepad erstellen.
Verwenden Sie dann start
, um die Batch-Datei zu starten:
start "" foobar.cmd
-or-
start "" "temporary foobar.cmd"
Hinweis: Das leere Paar von Anführungszeichen steht für das "Title"
, das in der Titelleiste des Befehlsfensters angezeigt wird, das start
öffnen wird. Dieses "Title"
-Argument ist technisch gesehen ein optionales Argument für start
, aber es ist eigentlich erforderlich, wenn der Befehl, den start
ausführen wird, in Anführungszeichen steht. Zum Beispiel im zweiten Beispiel:
start "" "temporary foobar.cmd"
wenn Sie das leere Paar doppelter Anführungszeichen weglassen, wie hier:
start "temporary foobar.cmd"
dann wird start
ein neues Befehlsfenster öffnen, und "temporary foobar.cmd"
als neues Befehlsfenster "Title"
verwenden, und nichts wird in dem neuen Befehlsfenster ausgeführt).
Wenn Sie möchten, dass start
auf die Beendigung der Stapeldatei wartet (nachdem pause
entlassen wurde), bevor start
beendet wird, dann müssen Sie den Schalter /w
zum Befehl start
hinzufügen:
start "" /w foobar.cmd
Sie können dies alles in einer Zeile zusammenfassen und sogar die temporäre Batch-Datei entfernen (löschen) (foobar.cmd
):
echo netsh dump ^&^& pause ^&^& exit>foobar.cmd && start "" /w foobar.cmd && del foobar.cmd
-or-
echo netsh dump ^& pause ^& exit>foobar.cmd & start "" /w foobar.cmd & del foobar.cmd
Hinweis: Wenn Sie die temporäre Batch-Datei löschen wollen, müssen Sie start
mit dem Schalter /w
ausführen, da sonst die temporäre Batch-Datei wahrscheinlich gelöscht wird, bevor sie eine Chance hat, zu laufen.