Mehrzeilige Befehle in cmd.exe und PowerShell eingeben

    Grundsätzlich ist es kein Problem, in Konsolenprogrammen wie cmd.exe oder PowerShell einen langen Befehl einzutippen, weil sie ihn abhängig von der eingestellten Fensterbreite einfach umbrechen. Dieses Verhalten ist aber manchmal unerwünscht, so dass man explizite Zeilenumbrüche eingeben kann, um mehrzeilige Kommandos abzusetzen.

    Ohne expliziten Zeilenumbruch teilt die Kommandozeile einen Befehl willkürlich an irgendeiner Position, also auch mitten im Namen eines Parameters. Somit erreicht man durch Zeilenvorschübe eine bessere Übersichtlichkeit, etwa wenn man Befehle in einer Anleitung oder auf einer Website veröffentlichen will.

    cmd.exe erwartet ^

    In der Eingabeaufforderung beginnt man eine neue Zeile, indem man die aktuelle mit einem Caret (^) abschließt und dann die Eingabetaste drückt. Daraufhin gibt cmd.exe auf der folgenden Zeile "Mehr?" als Prompt aus und erwartet die Fortsetzung des Kommandos.

    Befehle lassen sich in cmd.exe an beliebiger Stelle durch ein Caret trennen.

    Mehr Flexibilität mit PowerShell

    Eigene Wege beschreitet dagegen PowerShell, das weder ein ^ noch den in Visual Basic üblichen Unterstrich verwendet. Vielmehr benötigt man dort den umgekehrten Apostroph ` (Backtickle), den man nach einem Leerzeichen innerhalb des Kommandos eingibt.

    PowerShell führt einen Befehl nach dem ´ auf einer neuen Zeile fort. Fehlt ein Parameter, dann erfolgt dies automatisch.

    In den meisten Fällen wird man einen solchen expliziten Zeilenumbruch unter PowerShell gar nicht benötigen, weil sie automatisch die Fortsetzung der Eingabe in einer neuen Zeile erwartet, wenn sie einen Befehl als syntaktisch unvollständig erkennt. Das gilt etwa dann, wenn sich am Ende des Kommandos ein Pipe-Symbol befindet, schließende Klammern bzw. Anführungszeichen fehlen oder für ein Cmdlet ein erforderlicher Parameter nicht angegeben wurde.

    Keine Kommentare