batch-file
Echo
Szukaj…
Wprowadzenie
echo
może być użyte do kontrolowania i generowania wyjścia.
Składnia
- ECHO [ON | POZA]
- Wiadomość ECHO
- ECHO (wiadomość
- ECHO(
Parametry
Parametr | Detale |
---|---|
ON | POZA | Może być ON lub OFF (bez uwzględniania wielkości liter) |
wiadomość | Dowolny ciąg znaków (z wyjątkiem ON Lub OFF Jeśli jest używany bez ( ) |
Uwagi
-
echo.
wyświetli również pusty ciąg. Jest to jednak wolniejsze niżecho(
ponieważecho.
plik o nazwie „echo”. Tylko wtedy, gdy ten plik nie istnieje, polecenie będzie działać, ale to sprawdzenie powoduje spowolnienie. -
echo:
zachowuje się jakecho(
chyba żemessage
wygląda jak ścieżka do pliku, np.echo:foo\..\test.bat
. W takim przypadku interpreter zobaczyecho:foo
jako nazwę folderu, usuńecho:foo\..\
(ponieważ wydaje się, że wystarczy wejść do kataloguecho:foo
a następnie opuścić go ponownie), a następnie wykonaćtest.bat
, co nie jest pożądanym zachowaniem.
Wyświetlanie wiadomości
Aby wyświetlić „Some Text”, użyj polecenia:
echo Some Text
Spowoduje to wygenerowanie ciągu Some Text
po którym nastąpi nowy wiersz.
Aby wyświetlić ciągi On
i Off
(bez rozróżniania wielkości liter) lub pusty ciąg, użyj (
zamiast spacji:
echo(ON
echo(
echo(off
Spowoduje to wygenerowanie:
ON off
Często stosuje się także echo.
aby wyświetlić pusty wiersz, ale proszę zobaczyć uwagi, dlaczego nie jest to najlepszy pomysł.
Aby wyświetlić tekst bez uwzględnienia CR / LF, użyj następującego polecenia:
<nul set/p=Some Text
To polecenie spróbuje ustawić zmienną zwaną pustym ciągiem na dane wejściowe użytkownika po wyświetleniu monitu. Plik nul
jest przekierowywany do polecenia za pomocą <nul
, więc polecenie podda się, gdy tylko spróbuje z niego odczytać i pozostanie tylko ciąg zachęty. Ponieważ użytkownik nigdy nie wpisał nowej linii, nie ma linii.
Ustawienie echa
Ustawienie echa określa, czy echo polecenia jest włączone, czy wyłączone. Tak wygląda przykładowy program z włączonym echem poleceń (domyślnie):
C:\Windows\System32>echo Hello, World!
Hello, World!
C:\Windows\System32>where explorer
C:\Windows\System32\explorer.exe
C:\Windows\System32>exit
Tak to wygląda przy wyłączonym echu:
Hello, World!
C:\Windows\System32\explorer.exe
Pierwsze i ustawienie
Aby uzyskać (wyświetlić) ustawienie echa, użyj echo
bez parametrów:
> echo
ECHO is on.
Aby ustawić ustawienie echa, użyj echo
z on
lub off
:
> echo off
> echo
ECHO is off.
> echo on
> echo
ECHO is on.
Zauważ, że w tych przykładach monit jest reprezentowany przez >
. Podczas zmiany ustawienia echa monit pojawi się i zniknie, ale to powoduje niejasne przykłady.
Zauważ, że można zapobiec powtórzeniu polecenia nawet, gdy echo jest włączone, poprzez umieszczenie znaku @
przed poleceniem.
Echo generuje wszystko dosłownie
Cytaty będą przesyłane takimi, jakimi są:
echo "Some Text"
"Some Text"
Tokeny komentarzy są ignorowane:
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!
Jednak echo
nadal będzie generować zmienne - patrz Zmienne użycie - a znaki specjalne nadal działają:
echo hello && echo world
hello world
Wyjście echa do pliku
Sposoby utworzenia pliku za pomocą polecenia 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)
Dane wyjściowe na ścieżkę
Mały problem, na który możesz natknąć się, robiąc to:
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)
Ale jak to robimy? Cóż, w rzeczywistości jest to bardzo proste ... Podczas wpisywania ścieżki lub nazwy pliku, która zawiera spację w nazwie, pamiętaj, aby używać „cudzysłowów”
echo Hello how are you? > "C:\Users\Ben Tearzz\Desktop\example.bat"
(This will make a file on MY Desktop)
Ale co, jeśli chcesz utworzyć plik, który będzie generował nowy plik?
echo message > file1.bat > example.bat
(This is NOT going to output:
"message > file1.bat" to example.bat
Jak to robimy?
echo message ^> file1.bat > example.bat
(This will output:
"message > file1.bat" to example.bat
To samo dotyczy innych rzeczy wsadowo
Jeśli nie wiesz, jakie są zmienne i instrukcje, najprawdopodobniej nie zrozumiesz: kliknij tutaj, aby dowiedzieć się o zmiennych | kliknij tutaj, aby dowiedzieć się o instrukcjach „jeśli”
Zmienne:
set example="text"
echo %example% > file.bat
(This will output "text" to file.bat)
jeśli nie chcemy, aby wyświetlał „tekst”, ale zwykły% example%, to napisz:
echo ^%example^% > file.bat
(This will output "%example%" to file.bat)
inne oświadczenia:
else = ||
if ^%example^%=="Hello" echo True || echo False > file.bat
(This will output:
if %example%=="Hello" echo True
do wyprowadzenia całej linii piszemy:
if ^%example^%=="Hello" echo True ^|^| echo False > file.bat
This will output:
if %example%=="Hello" echo True || echo False
Jeśli zmienna jest równa „Hello”, wówczas powie „True”, w przeciwnym razie powie „False”
@ Wyłącz echo
@echo off
zapobiega wyświetlaniu monitu i zawartości pliku wsadowego, dzięki czemu widoczne są tylko dane wyjściowe. @
Ukrywa również wyjście polecenia echo off
.
Włączanie echa w nawiasach
W poniższym przykładzie echo on
zadziała po osiągnięciu końca kontekstu w nawiasach:
@echo off
(
echo on
echo ##
)
echo $$
Aby „aktywować” echo w kontekście nawiasów kwadratowych (w tym poleceń FOR
i IF
), możesz użyć makra FOR / f :
@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 ###
)