783 Stimmen

Wie kann ich einen Zeilenumbruch in einer Batch-Datei ausgeben?

Wie können Sie einen Zeilenumbruch in die Ausgabe Ihrer Batch-Datei einfügen?

Ich möchte etwas tun wie:

echo hello\nworld

Die Ausgabe wäre:

hello
world

9 Stimmen

Das war für mich sehr nützlich. Ich musste Echo machen \n \n | my_app.exe in einem Skript. Ich habe (echo. && echo.) | my_app.exe

2 Stimmen

Einfacher Ansatz " Code beginnt :" > echo hello&echo world , gibt Ihnen was Sie brauchen

2 Stimmen

Sie können ein unsichtbares ascii chr(255) in einer separaten Zeile einfügen, das eine neue Leerzeile erzwingt. Halten Sie die [alt]-Taste gedrückt und drücken Sie 255 auf der Tastatur. Dies fügt chr(255) ein, das ein leeres Quadrat ist. echo (alt+255) " Sie können nur den Ziffernblock benutzen, nicht die Zahlen oben auf der Tastatur!

45voto

echo. Genug gesagt.

Wenn Sie sie in einer einzigen Zeile benötigen, verwenden Sie die & . Zum Beispiel,

echo Line 1 & echo. & echo line 3

würde als ausgegeben:

Line 1

line 3

Nun, sagen wir, Sie wollen etwas Ausgefalleneres, ...

set n=^&echo.
echo hello %n% world

Ausgänge

hello
world

Dann werfen Sie einfach eine %n% wenn Sie eine neue Zeile in einer Echo-Anweisung wünschen. Dies ist näher an Ihrer \n in verschiedenen Sprachen verwendet.

Aufschlüsselung

set n= setzt die Variable n gleich:

^ Löscht das nächste Symbol, das folgt:

& Bedeutet, dass ein anderer Befehl in der gleichen Zeile ausgeführt wird. Wir kümmern uns nicht um die Fehlerebene (es ist eine Echo-Anweisung, um Himmels willen), also keine && erforderlich ist.

echo. Setzt die Echo-Anweisung fort.

All dies funktioniert, weil man tatsächlich Variablen erstellen kann, die Code sind, und sie innerhalb anderer Befehle verwenden kann. Es ist eine Art Ghetto-Funktion, da Batch nicht gerade die fortschrittlichste aller Shell-Skriptsprachen ist. Das funktioniert nur, weil Batch Variablen schlecht verwendet und nicht zwischen Ints, Chars, Floats, Strings usw. unterscheidet.

Wenn Sie geschickt sind, können Sie das auch mit anderen Dingen machen. Zum Beispiel kann man damit ein Tabulator-Echo erzeugen

set t=^&echo.     ::there are spaces up to the double colon

20voto

Crend King Punkte 3815

Wenn ein Echo in eine Datei umgeleitet werden soll, funktionieren mehrere Echo-Befehle nicht. Ich denke, dass der ">>" Redirector eine gute Wahl ist:

echo hello > temp
echo world >> temp

18voto

test30 Punkte 3166

Wenn Sie die Ergebnisse in einer Datei speichern möchten, können Sie dies tun:

(echo a & echo: & echo b) > file_containing_multiple_lines.txt

14voto

Wie Grimtron vorschlägt - hier ist ein kurzes Beispiel, um es zu definieren:

@echo off
set newline=^& echo.
echo hello %newline%world

Ausgabe

C:\>test.bat
hello
world

9voto

albert Punkte 366

Sie können auch so vorgehen,

(for %i in (a b "c d") do @echo %~i)

Die Ausgabe wird sein,

a
b
c d

Wird dies in eine Batch-Datei eingefügt, so wird "%" verdoppelt.

(for %%i in (a b "c d") do @echo %%~i)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X