Wie führe ich zwei Befehle in einer Zeile in Windows CMD aus?

Ich möchte zwei Befehle in einer Windows CMD-Konsole ausführen.

Unter Linux würde ich das folgendermaßen machen

touch thisfile ; ls -lstrh

Wie wird es unter Windows gemacht?

Lösung

Dies ist bei allen Microsoft-Betriebssystemen seit 2000 der Fall und funktioniert auch heute noch:

dir & echo foo

Wenn Sie wollen, dass der zweite Befehl nur ausgeführt wird, wenn der erste erfolgreich beendet wurde:

dir && echo foo

Die Syntax mit dem einfachen kaufmännischen Und (&), um mehrere Befehle in einer Zeile auszuführen, stammt aus Windows XP, Windows 2000 und einigen früheren NT-Versionen. (Mindestens 4.0, wie ein Kommentator hier berichtet.)

Es gibt noch einige andere Punkte, die Sie beim Scrollen auf dieser Seite finden werden.

Es folgen historische Daten, für diejenigen, die sie lehrreich finden könnten.

Davor war die &&-Syntax nur ein Merkmal des Shell-Ersatzes 4DOS, bevor diese Funktion dem Microsoft-Befehlsinterpreter hinzugefügt wurde.

In Windows 95, 98 und ME wurde stattdessen das Pipe-Zeichen verwendet:

dir | echo foo

Unter MS-DOS 5.0 und später sowie in einigen früheren Windows- und NT-Versionen des Befehlsinterpreters war das (undokumentierte) Befehlstrennzeichen das Zeichen 20 (Strg+T), das ich hier mit ^T wiedergeben werde.

dir ^T echo foo
Kommentare (17)

Ein Zitat aus der Dokumentation:

Verwendung mehrerer Befehle und bedingter Verarbeitungssymbole

Sie können mehrere Befehle von einer einzigen Befehlszeile oder einem Skript aus ausführen, indem Sie Symbole für die bedingte Verarbeitung verwenden. Wenn Sie mehrere Befehle mit bedingten Verarbeitungssymbolen ausführen, reagieren die Befehle rechts vom Symbol für bedingte Verarbeitung auf der Grundlage der Ergebnisse des Befehls links vom Symbol für bedingte Verarbeitung.

Sie können z. B. einen Befehl nur ausführen, wenn der vorherige Befehl fehlschlägt. Oder Sie möchten einen Befehl nur dann ausführen, wenn der vorhergehende Befehl erfolgreich ist.

Sie können die in der folgenden Tabelle aufgeführten Sonderzeichen verwenden, um mehrere Befehle zu übergeben.

  • & [...] Befehl1 & Befehl2 Verwenden Sie diese Zeichen, um mehrere Befehle in einer Befehlszeile zu trennen. Cmd.exe führt den ersten Befehl und dann den zweiten Befehl aus.
  • && [...] befehl1 && befehl2` Verwenden Sie diese Option, um den Befehl nach && nur dann auszuführen, wenn der Befehl vor dem Symbol erfolgreich ist. Cmd.exe führt den ersten Befehl aus und führt dann den zweiten Befehl nur aus, wenn der erste Befehl erfolgreich abgeschlossen wurde.
  • || [...] befehl1 || befehl2` Verwenden Sie diese Option, um den auf || folgenden Befehl nur dann auszuführen, wenn der Befehl vor || fehlschlägt. Cmd.exe führt den ersten Befehl aus und führt dann den zweiten Befehl nur dann aus, wenn der erste Befehl nicht erfolgreich abgeschlossen wurde (und einen Fehlercode größer als Null erhält).
  • ( ) [...] (Befehl1 & Befehl2) Zum Gruppieren oder Verschachteln mehrerer Befehle.
  • ; oder , Befehl1 Parameter1;Parameter2 Zur Trennung von Befehlsparametern verwenden.
Kommentare (7)

Sie können & verwenden, um Befehle nacheinander auszuführen. Beispiel: c:\dir & vim myFile.txt

Kommentare (0)