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 żemessagewygląda jak ścieżka do pliku, np.echo:foo\..\test.bat. W takim przypadku interpreter zobaczyecho:foojako nazwę folderu, usuńecho:foo\..\(ponieważ wydaje się, że wystarczy wejść do kataloguecho:fooa 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 ###
)