Ist es möglich, eine neue Zeile Zeichen in einer Echozeile in einer Batch-Datei zu setzen? [Duplikat]

StackOverflow https://stackoverflow.com/questions/1721258

  •  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.

War es hilfreich?

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

zu bekommen

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top