ECHO — вывод текста и управление отображением команд CMD

ECHO выводит текст в консоль, управляет режимом отображения команд в bat-скриптах и перенаправляет строки в файл. Базовая команда для любого сценария.

Команда ECHO выводит текстовые строки в консоль и управляет режимом отображения команд в bat/cmd-сценариях. Она используется буквально в каждом скрипте Windows: для вывода статуса, записи строк в файл через перенаправление и подавления «эха» команд через @ECHO OFF.

Синтаксис команды ECHO

ECHO [ON | OFF]
ECHO [сообщение]
ECHO.

Параметры:

  • ON — включить отображение команд в скрипте (режим по умолчанию).
  • OFF — отключить отображение команд в скрипте.
  • сообщение — текст, который будет напечатан в консоли.
  • ECHO. (точка без пробела) — вывести пустую строку.

Ключи и параметры

Вариант Описание Пример
ECHO OFF Скрыть отображение последующих команд ECHO OFF
@ECHO OFF То же, но скрыть и саму строку ECHO OFF @ECHO OFF
ECHO ON Вернуть отображение команд ECHO ON
ECHO текст Вывести строку ECHO Готово
ECHO %VAR% Вывести значение переменной ECHO %USERNAME%
ECHO. Вывести пустую строку (точка без пробела) ECHO.
ECHO текст > файл Записать строку в файл (перезапись) ECHO line > out.txt
ECHO текст >> файл Добавить строку в конец файла ECHO line2 >> out.txt

Примеры использования

Подавление вывода команд в скрипте

Стандартное начало любого bat-файла: без этой строки консоль будет печатать каждую выполняемую команду.

@ECHO OFF

Символ @ перед ECHO скрывает и саму команду ECHO OFF, а не только последующие.

Вывод текстового сообщения

Информировать пользователя о ходе выполнения скрипта или напечатать результат операции.

ECHO Резервная копия создана успешно.

Строка будет напечатана в консоли как есть, без кавычек.

Вывод значения переменной окружения

Быстро проверить, какое значение хранит переменная в текущем сеансе.

SET BACKUP_PATH=D:\backup
ECHO Путь для резервных копий: %BACKUP_PATH%

Команда подставит значение переменной и выведет полную строку.

Запись строки в файл

Создать текстовый файл с одной строкой или перезаписать существующий.

ECHO Начало лога > C:\logs\deploy.log

Если файл существует — он будет перезаписан. Если нет — создан.

Добавление строк в существующий файл (лог)

В скрипте развёртывания или резервного копирования удобно добавлять строки в лог без перезаписи.

ECHO [%DATE% %TIME%] Шаг 1 выполнен >> C:\logs\deploy.log
ECHO [%DATE% %TIME%] Шаг 2 выполнен >> C:\logs\deploy.log

Каждая строка добавляется в конец файла с временной меткой из системных переменных.

Вывод пустой строки

Разделить блоки вывода в консоли для читаемости — точка без пробела после ECHO.

ECHO Блок 1 завершён.
ECHO.
ECHO Начало блока 2...

Важно: ECHO [пробел] не даст пустую строку — нужна именно точка без пробела.

Создание многострочного файла

Сгенерировать простой конфигурационный файл или шаблон прямо из скрипта.

@ECHO OFF
ECHO [settings] > config.ini
ECHO timeout=30 >> config.ini
ECHO retries=3 >> config.ini

После выполнения скрипта в текущей папке появится файл config.ini с тремя строками.

Проверка текущего статуса ECHO

Узнать, в каком режиме сейчас работает консоль — ON или OFF.

ECHO

Без параметров команда выводит ECHO включено или ECHO выключено.

Частые ошибки и решения

Ошибка / симптом Причина Решение
Пустая строка не выводится через ECHO (с пробелом) CMD интерпретирует ECHO [пробел] как команду с пустым параметром, а не пустую строку Использовать ECHO. — точку без пробела
Вывод содержит лишние пробелы в конце строки Пробел между ECHO и текстом входит в выводимую строку Написать текст сразу после пробела; для точного контроля — убрать лишние пробелы
Команды видны в консоли несмотря на ECHO OFF Строка ECHO OFF написана без @ в начале Заменить на @ECHO OFF
Файл перезаписывается каждый раз Использован > вместо >> Для добавления в конец использовать >>
Переменная выводится как %VAR%, а не её значение Скрипт запущен с SETLOCAL ENABLEDELAYEDEXPANSION, но используются % вместо ! В блоках с отложенным расширением использовать !VAR!

Когда применять, а когда нет

ECHO незаменима в bat/cmd-сценариях для информирования пользователя и ведения лога. Её основное ограничение — нет встроенного форматирования (цвет, выравнивание); для цветного вывода используйте COLOR или PowerShell. В PowerShell аналоги: Write-Host для вывода в консоль (с поддержкой цвета) и Write-Output для передачи объектов по конвейеру. Для записи в файл в PowerShell предпочтительнее Add-Content или Out-File, так как они корректно обрабатывают кодировку.

FAQ

Почему ECHO. выводит пустую строку, а ECHO с пробелом — нет?

CMD обрабатывает ECHO. как специальный синтаксис для пустой строки. Пробел после ECHO интерпретируется как разделитель перед параметром, и если параметр пустой — команда показывает статус ON/OFF.

Как вывести строку, которая содержит символ >?

Экранируйте символ символом ^: ECHO 5 ^> 3 — верно. Без экранирования > интерпретируется как перенаправление вывода.

Как записать вывод команды в файл вместе с текстом ECHO?

Используйте перенаправление: ECHO Список файлов: > report.txt && dir >> report.txt. Первая строка создаёт файл, вторая добавляет результат dir.

Влияет ли @ECHO OFF на вывод самой команды ECHO?

Символ @ подавляет отображение только той строки, перед которой стоит. @ECHO OFF скрывает и саму строку команды, и все последующие. Без @ строка ECHO OFF всё равно будет напечатана.

Как вывести текст без перевода строки?

В стандартном CMD это невозможно напрямую. Альтернатива — использовать set /p "=текст" < nul: эта конструкция выводит строку без символа новой строки в конце.

Можно ли использовать ECHO внутри блока FOR или IF?

Да, без ограничений. ECHO работает в любом блоке CMD-скрипта. При использовании внутри скобок блока FOR следите за экранированием специальных символов через ^.

Оцените статью
( Пока оценок нет )
MW10
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.