Поиск…


Вступление

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 как имя папки, strip echo: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 ###
)


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow