Ich versuche, einen Befehl cmd.exe
mit einem Zeilenumbruch oder einer neuen Zeile als Teil des Befehls wie folgt auszuführen :
command -option:text
whatever
Aber jede neue Zeile führt den Befehl aus, anstatt den Befehl in der nächsten Zeile fortzusetzen.
Wie kann ich ein neues Zeilenzeichen eingeben oder einen mehrzeiligen Befehl in cmd.exe erstellen?
windows
command-line
newlines
Rudimenter
quelle
quelle
Antworten:
Verwenden Sie den
^
Charakter als Flucht:Ich gehe davon aus, dass Sie cmd.exe von Windows XP oder ähnlichem verwenden. Dies ist kein tatsächliches DOS. Wenn Sie aktuelles DOS verwenden (MS-DOS, Win3.1, Win95, Win98, WinME), dann glaube ich nicht, dass es einen Ausweg für Zeilenumbrüche gibt. Sie müssten eine benutzerdefinierte Shell ausführen. cmd.exe fordert Sie zur Eingabe von "More?" Jedes Mal, wenn Sie die Eingabetaste mit einem
^
am Ende der Zeile drücken, drücken Sie die Eingabetaste erneut, um eine neue Zeile zu schließen / einzubetten.quelle
SHUTDOWN.EXE
Befehls einzufügen . Ich habe am Ende so etwas verwendet:shutdown -s -t 900 -c "foo bar"^
> Mehr?"baz"^
> Mehr?"test that."
Es funktionierte.Verwenden Sie Alt-Codes mit dem Nummernblock
Dieses Zeilenvorschubzeichen kann mit dem Nummernblock als Alt-Code auf der CLI eingegeben werden: Halten Sie bei aktivierter NumLock-Taste die ALT-Taste gedrückt und geben Sie 10 auf dem Nummernblock ein, bevor Sie die ALT-Taste loslassen. Wenn Sie auch die CR benötigen, geben Sie beide mit Alt + 13 und dann Alt + 10 ein:
♪◙
Hinweis: Dies funktioniert nicht in einer Batch-Datei.
Beispielanwendungsfall:
Sie versuchen, die Umgebungsvariablen% PATH% oder% CLASSPATH% zu lesen, um einen schnellen Überblick darüber zu erhalten, was in welcher Reihenfolge vorhanden
path
ist. Die zurückgegebene Textwand ist jedoch nicht lesbar. Dann können Sie dies schnell eingeben:Bearbeiten:
Es wurde die
>con
Problemumgehung hinzugefügt, die Brent Rittenhouse für neuere Versionen von cmd.exe entdeckte, bei denen die ursprüngliche Methode nicht mehr funktionierte.quelle
e2 99 aa e2 97 99
. Irgendeine Art von Unicode-Code-Punkt? Ich sehe jedoch, dass die Zeichen in der Befehlszeile eingegeben werden. Irgendwelche Vorschläge?Use legacy console
aktivieren. Aber auf einem hochauflösenden Monitor sieht es wirklich schlecht aus.(echo New-line detected rigghhhtt ◙^<--- HERE!) > CON
Die umgebende Klammer ist optional. Hier ist ein robustes Beispiel dafür , was man mit diesem tun kann (und Zeilenumbrüchen , die jetzt Arbeit und völlig unabhängig!): I.imgur.com/qqN37PH.pngIch weiß nicht, ob dies für Sie funktionieren wird, aber durch Setzen von & Echo (der folgende Raum ist wichtig). dazwischen jede Anweisung, die Sie in einer neuen Zeile möchten. Ich habe das nur mit einer einfachen Fledermausfeile ausprobiert
Dann speichere das als testNewLines.bat
Also dann die cmd-Zeile
Führt dazu, dass das Folgende zurückgesendet wird
erste Zeile
zweite Zeile
Dritte Zeile
quelle
Erweitern auf Amits Antwort ( /superuser//a/1132659/955256 ) Ich habe eine Möglichkeit gefunden, dies in einer beliebigen Schriftart zu tun, OHNE die Legacy-Konsole zu verwenden.
Alles, was Sie tun müssen, ist einfach die Zeile mit Alt-10-Zeichen auszugeben
con
und sie dann umzuleiten, und es wird funktionieren!Zum Beispiel gegeben:
edit: Lustige Tatsache, es scheint, dass Sie die Umleitung am Anfang so setzen können:
Komisch, was?
Sie erhalten eine Ausgabe von:
(Die umgebende Klammer ist optional.)
Hier ist ein robusteres Beispiel dafür, was Sie mit diesem AND-Wagenrücklauf machen können, der jetzt funktioniert und völlig unabhängig ist:
Das Beste ist, dass dies funktioniert, wenn Sie auch zu einer Datei umleiten!
(einfach wechseln
> CON
zu> desired_output_file.txt
Genießen!
quelle
Die Ausgabe von ^ ist speicherbar
Beispiel:
; Ausgabe:
quelle
Ich glaube, Sie können das nicht von der Windows-
cmd.exe
Shell aus tun . ( Es ist nicht DOS. )Sie benötigen dafür keine vollständige "benutzerdefinierte Shell". Sie müssen nur so etwas schreiben (Beispiel in Python ):
Oder Ruby:
Sehen Sie, es ist nicht so schwer.
quelle