batch-file
Echo
Suche…
Einführung
echo
kann verwendet werden, um die Ausgabe zu steuern und zu erzeugen.
Syntax
- ECHO [ON | AUS]
- ECHO-Nachricht
- ECHO (Nachricht
- ECHO(
Parameter
Parameter | Einzelheiten |
---|---|
ON | AUS | Kann entweder ON oder OFF (Groß- und Kleinschreibung wird nicht berücksichtigt) |
Botschaft | Beliebige Zeichenfolge (außer ON oder OFF bei Verwendung ohne ( )) |
Bemerkungen
-
echo.
zeigt auch eine leere Zeichenfolge an. Dies ist jedoch langsamer als dasecho(
daecho.
Nach einer Datei mit dem Namen "Echo" sucht. Nur wenn diese Datei nicht vorhanden ist, funktioniert der Befehl, aber diese Prüfung macht ihn langsamer. -
echo:
verhält sich wieecho(
sofern diemessage
wie ein Dateipfad aussieht, z. B.echo:foo\..\test.bat
. In diesem Fall sieht der Interpreterecho:foo
alsecho:foo\..\test.bat
,echo:foo\..\test.bat
echo:foo\..\
(weil es so aussieht, als würde man nur das Verzeichnisecho:foo
eingebenecho:foo
dann wieder verlassen) danntest.bat
ausführen, was nicht das gewünschte Verhalten ist.
Nachrichten anzeigen
Verwenden Sie den Befehl, um "Some Text" anzuzeigen:
echo Some Text
Dadurch wird die Zeichenfolge Some Text
gefolgt von einer neuen Zeile ausgegeben.
Verwenden Sie zum Anzeigen der Zeichenfolgen On
und Off
(ohne Berücksichtigung der Groß- und Kleinschreibung) oder der leeren Zeichenfolge ein (
anstelle von Leerzeichen:
echo(ON
echo(
echo(off
Dies wird ausgegeben:
ON off
Es ist auch üblich, echo.
zu verwenden echo.
Um eine leere Zeile auszugeben, lesen Sie bitte die Anmerkungen, warum dies nicht die beste Idee ist.
Verwenden Sie den folgenden Befehl, um Text ohne CR / LF anzuzeigen:
<nul set/p=Some Text
Dieser Befehl versucht, die Variable, die als leere Zeichenfolge bezeichnet wird, nach einer Eingabeaufforderung auf die Benutzereingabe zu setzen. Die nul
Datei wird mit <nul
an den Befehl umgeleitet, so dass der Befehl aufgibt, sobald er versucht, daraus zu lesen, und nur die Eingabeaufforderung bleibt übrig. Da der Benutzer nie eine neue Zeile eingegeben hat, gibt es keinen Zeilenvorschub.
Echoeinstellung
Die Echo-Einstellung bestimmt, ob das Befehlsecho ein- oder ausgeschaltet ist. Dies ist , was ein Beispielprogramm sieht aus wie mit dem Befehl Echo auf (Standard):
C:\Windows\System32>echo Hello, World!
Hello, World!
C:\Windows\System32>where explorer
C:\Windows\System32\explorer.exe
C:\Windows\System32>exit
So sieht es bei ausgeschaltetem Echo aus :
Hello, World!
C:\Windows\System32\explorer.exe
Holen und Einstellen
Verwenden Sie echo
ohne Parameter, um die echo
abzurufen (anzuzeigen):
> echo
ECHO is on.
Um die Echo - Einstellung festzulegen, verwendet echo
mit on
oder off
:
> echo off
> echo
ECHO is off.
> echo on
> echo
ECHO is on.
Beachten Sie, dass bei diesen Beispielen die Eingabeaufforderung durch >
. Wenn Sie die Echoeinstellung ändern, wird die Aufforderung angezeigt und ausgeblendet. Dies führt jedoch zu unklaren Beispielen.
Beachten Sie, dass Sie das Echo eines Befehls auch bei eingeschaltetem Echo verhindern können, indem Sie vor dem Befehl ein @
-Zeichen setzen.
Echo gibt alles wörtlich aus
Zitate werden so ausgegeben, wie sie sind:
echo "Some Text"
"Some Text"
Kommentartoken werden ignoriert:
echo Hello World REM this is not a comment because it is being echoed!
Hello World REM this is not a comment because it is being echoed!
Das echo
gibt jedoch immer noch Variablen aus (siehe Verwendung der Variablen ) und Sonderzeichen bleiben wirksam
echo hello && echo world
hello world
Echoausgabe in Datei
Möglichkeiten zum Erstellen einer Datei mit dem Befehl echo:
echo. > example.bat (creates an empty file called "example.bat")
echo message > example.bat (creates example.bat containing "message")
echo message >> example.bat (adds "message" to a new line in example.bat)
(echo message) >> example.bat (same as above, just another way to write it)
Ausgabe an Pfad
Ein kleines Problem, dem Sie dabei begegnen könnten:
echo Hello how are you? > C:\Users\Ben Tearzz\Desktop\example.bat
(This will NOT make a file on the Desktop, and might show an error message)
Aber wie machen wir das? Nun, es ist wirklich extrem einfach ... Wenn Sie einen Pfad oder Dateinamen eingeben, der ein Leerzeichen enthält, denken Sie daran, "Anführungszeichen" zu verwenden.
echo Hello how are you? > "C:\Users\Ben Tearzz\Desktop\example.bat"
(This will make a file on MY Desktop)
Was aber, wenn Sie eine Datei erstellen möchten, die eine neue Datei ausgibt?
echo message > file1.bat > example.bat
(This is NOT going to output:
"message > file1.bat" to example.bat
Wie machen wir das?
echo message ^> file1.bat > example.bat
(This will output:
"message > file1.bat" to example.bat
Gleiches gilt für andere Sachen im Stapel
Wenn Sie nicht gelernt haben, was Variablen und Anweisungen sind, werden Sie höchstwahrscheinlich Folgendes nicht verstehen: Klicken Sie hier, um etwas über Variablen zu erfahren Klicken Sie hier, um mehr über "if" -Statements zu erfahren
Variablen:
set example="text"
echo %example% > file.bat
(This will output "text" to file.bat)
Wenn wir nicht "text" ausgeben wollen, sondern einfach nur% example%, dann schreiben Sie:
echo ^%example^% > file.bat
(This will output "%example%" to file.bat)
else aussagen:
else = ||
if ^%example^%=="Hello" echo True || echo False > file.bat
(This will output:
if %example%=="Hello" echo True
Um die ganze Zeile auszugeben, schreiben wir:
if ^%example^%=="Hello" echo True ^|^| echo False > file.bat
This will output:
if %example%=="Hello" echo True || echo False
Wenn die Variable gleich "Hallo" ist, sagt sie "True", sonst "False".
@Echo aus
@echo off
verhindert @echo off
dass die Eingabeaufforderung und der Inhalt der @echo off
angezeigt werden, sodass nur die Ausgabe sichtbar ist. Das @
macht die Ausgabe des Befehls echo off
ausgeblendet.
Echo an den inneren Klammern einstellen
Im folgenden Beispiel wird echo on
wirksam, wenn das Ende des Klammer-Kontexts erreicht ist:
@echo off
(
echo on
echo ##
)
echo $$
Um das Echo in Klammern zu aktivieren (einschließlich FOR
und IF
Befehlen), können Sie das FOR / f-Makro verwenden :
@echo off
setlocal
:: echo on macro should followed by the command you want to execute with echo turned on
set "echo_on=echo on&for %%. in (.) do"
(
%echo_on% echo ###
)