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 das echo( da echo. 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 wie echo( sofern die message wie ein Dateipfad aussieht, z. B. echo:foo\..\test.bat . In diesem Fall sieht der Interpreter echo:foo als echo:foo\..\test.bat , echo:foo\..\test.bat echo:foo\..\ (weil es so aussieht, als würde man nur das Verzeichnis echo:foo eingeben echo:foo dann wieder verlassen) dann test.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 ###
)


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow