batch-file
эхо
Поиск…
Вступление
echo
может использоваться для управления и производства выходных данных.
Синтаксис
- ECHO [ON | OFF]
- Сообщение ECHO
- ECHO (сообщение
- ECHO (
параметры
параметр | подробности |
---|---|
ON | OFF | Может быть ON или OFF (нечувствителен к регистру) |
сообщение | Любая строка (кроме ON или OFF при использовании без ( ) |
замечания
-
echo.
также отображает пустую строку. Однако это медленнее, чемecho(
посколькуecho.
Будет искать файл с именем «echo». Только если этот файл не существует, команда будет работать, но эта проверка делает ее медленнее. -
echo:
будет вести себя точно так же, какecho(
еслиmessage
похоже на путь к файлу, напримерecho:foo\..\test.bat
. В этом случае интерпретатор увидитecho:foo
как имя папки, stripecho:foo\..\
(потому что кажется, что просто введите каталогecho:foo
затем оставьте его снова), затем выполнитеtest.bat
, что не является желаемым поведением.
Отображение сообщений
Чтобы отобразить «Some Text», используйте команду:
echo Some Text
Это выведет строку Some Text
а затем новую строку.
Чтобы отобразить строки On
И Off
( Off
учета регистра) или пустую строку, используйте (
вместо пробела:
echo(ON
echo(
echo(off
Это приведет к выводу:
ON off
Также часто используется echo.
для вывода пустой строки, но, пожалуйста, см. замечания, почему это не самая лучшая идея.
Чтобы отобразить текст без включения CR / LF, используйте следующую команду:
<nul set/p=Some Text
Эта команда попытается установить переменную, называемую пустой строкой, на ввод пользователя после запроса. Файл nul
перенаправляется в команду с помощью <nul
, поэтому команда будет сдаваться, как только она попытается прочитать ее, и останется только строка приглашения. Поскольку пользователь никогда не вводил новую строку, нет перевода строки.
Настройка эха
Параметр эха определяет, включено или выключено эховое сопровождение команды. Вот как выглядит пример программы с командой echoing on (по умолчанию):
C:\Windows\System32>echo Hello, World!
Hello, World!
C:\Windows\System32>where explorer
C:\Windows\System32\explorer.exe
C:\Windows\System32>exit
Это то , что она выглядит с эхом от:
Hello, World!
C:\Windows\System32\explorer.exe
Получение и настройка
Чтобы получить (отобразить) настройку эха, используйте echo
без параметров:
> echo
ECHO is on.
Чтобы установить настройку эха, используйте echo
с on
или off
:
> echo off
> echo
ECHO is off.
> echo on
> echo
ECHO is on.
Обратите внимание, что в этих примерах приглашение было представлено как >
. При изменении настройки эха подсказка появляется и исчезает, но это приводит к неясным примерам.
Обратите внимание, что можно предотвратить повторную эхо-команду, даже если включено эхо, путем размещения символа @
перед командой.
Эхо выводит все буквально
Котировки будут выводиться как есть:
echo "Some Text"
"Some Text"
Комментировать токены игнорируются:
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!
Тем не менее, echo
прежнему будет выводить переменные - см. Использование переменных - и специальные символы все еще действуют:
echo hello && echo world
hello world
Выход эха в файл
Способы создания файла с помощью команды 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)
Выход на путь
Небольшая проблема, с которой вы можете столкнуться при выполнении этого:
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)
Но тогда как мы это делаем? Ну это на самом деле очень просто ... При вводе пути или имени файла, в котором есть пробел, включенный в его имя, не забудьте использовать «кавычки»,
echo Hello how are you? > "C:\Users\Ben Tearzz\Desktop\example.bat"
(This will make a file on MY Desktop)
Но что делать, если вы хотите создать файл, который выводит новый файл?
echo message > file1.bat > example.bat
(This is NOT going to output:
"message > file1.bat" to example.bat
Тогда как мы это сделаем?
echo message ^> file1.bat > example.bat
(This will output:
"message > file1.bat" to example.bat
То же самое касается других вещей в партии
Если вы не узнали, что такое переменные и операторы, то, скорее всего, вы не поймете следующее: нажмите здесь, чтобы узнать о переменных | нажмите здесь, чтобы узнать о заявлениях «если»
Переменные:
set example="text"
echo %example% > file.bat
(This will output "text" to file.bat)
если мы не хотим, чтобы он выводил «текст», а просто показывал% example%, тогда пишите:
echo ^%example^% > file.bat
(This will output "%example%" to file.bat)
else:
else = ||
if ^%example^%=="Hello" echo True || echo False > file.bat
(This will output:
if %example%=="Hello" echo True
для вывода всей строки мы пишем:
if ^%example^%=="Hello" echo True ^|^| echo False > file.bat
This will output:
if %example%=="Hello" echo True || echo False
Если переменная равна «Hello», тогда она скажет «True», иначе она скажет «False»,
@Echo off
@echo off
препятствует @echo off
подсказки и содержимого командного файла, так что @echo off
только выход. @
делает вывод команды echo off
команды скрытой.
Поворот эха на внутренних кронштейнах
В следующем примере echo on
вступит в силу после достижения конца контекста скобок:
@echo off
(
echo on
echo ##
)
echo $$
Чтобы «активировать» эхо в контексте скобок (включая команды FOR
и IF
), вы можете использовать макрос 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 ###
)