Ist es möglich, eine neue Zeile Zeichen in einer Echozeile in einer Batch-Datei zu setzen? [Duplikat]
-
19-09-2019 - |
Frage
Diese Frage bereits eine Antwort hier:
Ist es möglich, eine neue Zeile Zeichen in einer Echozeile in einer Batch-Datei zu setzen?
Grundsätzlich möchte ich in der Lage sein das Äquivalent zu tun:
echo Hello\nWorld
Sie können dies unter Linux leicht genug tun, aber ich kann nicht herausfinden, wie es in Windows zu tun.
Lösung
echo.
druckt eine leere Zeile.
Beispiel:
echo Hello
echo.
echo world
druckt
Hello
world
Andere Tipps
Es kann mit einem einzigen Echo gelöst werden.
Sie benötigen ein Newline-Zeichen \n
dafür.
Es gibt mehrere Möglichkeiten, um eine neue Zeile in die echo
1) In diesem Beispiel wird die Verwendung des mehrzeiligen caret eine neue Zeile in den Befehl,
hinzufügen
die leere Zeile ist erforderlich
echo Hello^
world
2) die nächste Lösung erzeugt zuerst eine Variable, die ein einziges Zeilenvorschub-Zeichen enthält.
set \n=^
rem ** Two empty lines are required
oder erstellen Sie die neue Linie mit einer leicht modifizierten Version
(set \n=^
%=DONT REMOVE THIS=%
)
Und verwenden Sie dieses Zeichen mit verzögerte Expansion
setlocal EnableDelayedExpansion
echo Hello!\n!world
Um ein Zeilenvorschub-Zeichen mit der Prozent Expansion verwenden müssen Sie eine komplexere Sequenz erzeugen
echo Hello^%\n%%\n%world
Oder können Sie die Neue Zeile verwenden Hack
REM Creating a Newline variable (the two blank lines are required!)
set \n=^
set NL=^^^%\n%%\n%^%\n%%\n%
REM Example Usage:
echo There should be a newline%NL%inserted here.
Aber nur die verzögerte Erweiterung des Newline funktioniert zuverlässig, auch innerhalb von Anführungszeichen.
Nach einem wenig Experimentieren entdeckte ich, dass es möglich ist, es zu tun, ohne die Ausgabe zwei separate Echo Befehle wie in Wie können Sie eine neue Zeile in Batch-Dateien? echo. Jedoch macht es arbeiten Sie mit einem Texteditor benötigen, die nicht CR CR + LF nicht übersetzen.
Typ:
@echo First Line
dann mit NumLock auf, halten Sie die ALT-Taste und geben Sie 10 auf der numerischen Tastatur vor ALT Freigabe (Sie müssen über den Ziffernblock, nicht in der obersten Zeile Zifferntasten). Dadurch wird ein CR-Zeichen einzufügen. Dann gibt die zweite Zeile. Je nach Ihrem Editor und wie es behandelt CR verglichen mit CR + LF können Sie erhalten:
@echo First Line◙Second Line
oder
@echo First Line
Second Line
Dies funktioniert über die Befehlszeile und wird in einer Batch-Datei arbeiten, solange der Texteditor nicht übersetzen CR CR + LF (die Windows / DOS-Editoren zu tun, wenn Sie sie nicht zu konfigurieren). Wenn der CR CR + LF umgewandelt wird, oder wenn Sie nur LF verwenden, wird die zweite Zeile als neuen Befehl interpretiert.
Allerdings kann ich nicht sehen, warum dies besser wäre, über einfach:
@echo First Line
@echo Second Line
Ahaha,
Ich glaube, ich habe nahe genug etwas gearbeitet ...
echo hello&echo.&echo world
Erzeugt:
Hallo
Welt
Echo. oder echo (
wird die leere neue Linie tun. Hoffe, das ist hilfreich.
Das fand ich sehr informativ, so wollte ein besseres Beispiel mit den Antworten zur Verfügung gestellt, um Posten
Dies stellt eine schön formatierte Benutzungsmitteilung
if "%1" == """" goto usage
:usage
echo USAGE: %0 [Set properties using -D flag] [Ant Task to Run] &
echo. &
echo Availble Command line properties &
echo -------------------------------- &
...
Ich denke, es ist nicht möglich. Sie könnten nur ein ascii-Zeichen versuchen, diese: http://www.asciitable.com/ Aber das wird vielleicht zum Absturz Ihrer Batch-Datei.