- Команда ECHO — вывод текста на экран консоли
- Windows shell echo off
- Синтаксис
- Параметры
- Примечания
- Windows shell echo off
- Синтаксис
- Параметры
- Примечания
- Язык интерпретатора Cmd.exe. Командные файлы
- Язык интерпретатора Cmd.exe. Командные файлы
- Вывод сообщений и дублирование команд
- Использование параметров командной строки
Команда ECHO — вывод текста на экран консоли
Команда ECHO наверно является одной из самых простых и самых используемых команд. Применяется для вывода текстовых сообщений на стандартный вывод и для переключения режима отображения команд на экране.
Формат командной строки:
ECHO [ON | OFF] — включить / выключить режим отображения вводимых команд на экране.
ECHO [сообщение] отобразить текст сообщения на экране.
ECHO — при вводе команды без параметров, отображается текущий режим отображения команд:
Режим вывода команд на экран (ECHO) включен.
Для вывода пустой строки, используется команда ECHO с точкой:
echo Hello World. — вывод сообщения Hello World. на экран.
echo %USERNAME% — вывод на экран значения переменной окружения USERNAME (имени текущего пользователя)
Наиболее распространено использование команды echo в командных файлах. Практически любой командный файл начинается командой
@echo off — отключить режим вывода команд на экран. Символ @ перед командой echo используется для того, чтобы на экран не выводился и текст самой команды.
Очень часто команда echo используется для записи сообщений в текстовый файл с использованием перенаправлением вывода:
echo Начало работы — %DATE% в %TIME% >logfile.txt
Echo ERORLEVEL=%ERRORLEVEL% >> logfile.txt
Echo Конец работы, %DATE% в %TIME% >>logfile.txt
В текстовый файл logfile.txt записывается дата и время начала работы командного файла, некоторые результаты и время завершения.
Нередко, команда echo используется для создания нового файла:
echo 1 >newfile.cmd — вывести символ «1» в файл newfile.cmd . Если такого файла не существует, он будет создан, если существует, то будет перезаписан.
Значения параметров командной строки, переменных и их подстановочных значений, также нередко отображаются с помощью команды echo . Пример командного файла, выводящего на экран информацию о себе:
@echo off
ECHO ОБРАБАТЫВАЕТСЯ ФАЙЛ — %0
ECHO Дата/время создания/изменения командного файла — %
t0
ECHO Путь командного файла — «%
f0″
ECHO Диск командного файла — %
d0
ECHO Каталог командного файла — «%
p0″
ECHO Имя командного файла — %
n0
ECHO Расширение командного файла — %
x0
ECHO Короткое имя и расширение — %
s0
ECHO Атрибуты командного файла — %
a0
ECHO Размер командного файла — %
При выводе служебных символов, интерпретируемых командным процессором нужно использовать символ ^ . Например, вместо значения переменной ERRORLEVEL, нужно вывести текст “%ERRORLEVEL%”
ECHO ^%ERRORLEVEL^% = %ERRORLEVEL%
Особенностью команды ECHO является добавление служебных символов возврата каретки и перевода строки 0x0D и 0x0A (Carriage Return и Line Feed) в конец выводимого текста. Командный файл следующего содержания выводит текст из 3-х строк:
Если же требуется вывести весь текст в одну строку, обычно используют эмуляцию команды ECHO командой SET с параметром /P, используемой для организации диалога с пользователем, когда выводится сообщение, на которое требуется ответ. Выводимое сообщение можно использовать таким же образом, как и в команде ECHO, а вместо ответа можно использовать ввод с фиктивного устройства nul :
При выполнении такого командного файла сообщение на экране будет представлено одной строкой:
Для подачи звуковых сигналов можно использовать вывод служебного символа с кодом 07 (BELL). Достаточно просто включить его в поток выходных данных, что зависит от возможностей редактора, который используется для написания командного файла. Можно использовать и стандартные возможности командной строки, добавив комбинацию CTRL+G :
Windows shell echo off
Вывод на экран сообщения или задание режима вывода на экран сообщений команд. Вызванная без параметров команда echo выводит текущий режим.
Синтаксис
Параметры
Примечания
- Команда echoсообщение может оказаться полезной, если отключен режим отображения работы команд. Для вывода сообщений из нескольких строк без вывода дополнительных команд между ними следует использовать несколько последовательных команд echoсообщение после команды echooff в пакетной программе.
- Если используется команда echooff, приглашение командной строки не отображается на экране. Чтобы отобразить приглашение, введите команду echoon.
- Чтобы отключить вывод строк, введите символ «коммерческого эт» (@) перед командой в пакетном файле.
- Чтобы вывести на экране пустую строку, введите следующую команду:
Чтобы вывести символы канала (|) или перенаправления ( ) при использовании команды echo, введите символ (^) непосредственно перед символом канала или перенаправления (например ^>, ^ NUL set x=Русский текст chcp 866 >NUL echo %x% pause
Такие сообщения для удобства можно выделить в отдельный блок.
Если такой блок неудобно располагать в начале файла, то можно образовать из него процедуру, разместить в конце bat файла, а на исполнение вызвать эту процедуру командой call в начале bat файла. Из примера все должно стать понятнее))
Если сообщение одиночное, то можно извратиться поступить следующим образом:
Таким образом можно выводить русские буквы (текст) в команде echo.
Эти же замечания по поводу вывода русского текста относятся и к команде Title и Set с параметром P.
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).
Windows shell echo off
Вывод на экран сообщения или задание режима вывода на экран сообщений команд. Вызванная без параметров команда echo выводит текущий режим.
Синтаксис
Параметры
Примечания
- Команда echoсообщение может оказаться полезной, если отключен режим отображения работы команд. Для вывода сообщений из нескольких строк без вывода дополнительных команд между ними следует использовать несколько последовательных команд echoсообщение после команды echooff в пакетной программе.
- Если используется команда echooff, приглашение командной строки не отображается на экране. Чтобы отобразить приглашение, введите команду echoon.
- Чтобы отключить вывод строк, введите символ «коммерческого эт» (@) перед командой в пакетном файле.
- Чтобы вывести на экране пустую строку, введите следующую команду:
Чтобы вывести символы канала (|) или перенаправления ( ) при использовании команды echo, введите символ (^) непосредственно перед символом канала или перенаправления (например ^>, ^ echo off
echo.
echo Эта пакетная программа
echo форматирует и проверяет
echo новые диски
echo.
Если требуется отключить режим отображения команд и при этом не выводить на экран строку самой команды echo, введите символ @ перед командой:
Оператор if и команду echo можно использовать в одной командной строке: Например:
if exist *.rpt echo Отчет получен.
При выводе русских букв необходимо помнить о кодировке. Текст сообщения должен быть в DOS (866) кодировке. Многие текстовые редакторы его поддерживают.
Если необходимо, что бы текст сообщений был в WIN (1251) кодировке и был виден из любого редактора, то можно использовать следующий прием.
Такие сообщения для удобства можно выделить в отдельный блок.
Если такой блок неудобно располагать в начале файла, то можно образовать из него процедуру, разместить в конце bat файла, а на исполнение вызвать эту процедуру командой call в начале bat файла. Из примера все должно стать понятнее))
Если сообщение одиночное, то можно извратиться поступить следующим образом:
Таким образом можно выводить русские буквы (текст) в команде echo.
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).
Новый раздел о средствах командной строки в рамках этого же проекта расположен здесь
Язык интерпретатора Cmd.exe. Командные файлы
Язык интерпретатора Cmd.exe. Командные файлы
Язык оболочки командной строки ( shell language ) в Windows реализован в виде командных (или пакетных) файлов. Командный файл в Windows — это обычный текстовый файл с расширением bat или cmd, в котором записаны допустимые команды операционной системы (как внешние, так и внутренние), а также некоторые дополнительные инструкции и ключевые слова, придающие командным файлам некоторое сходство с алгоритмическими языками программирования. Например, если записать в файл deltmp.bat следующие команды:
и запустить его на выполнение (аналогично исполняемым файлам с расширением com или exe), то мы удалим все файлы во временной директории Windows . Таким образом, исполнение командного файла приводит к тому же результату, что и последовательный ввод записанных в нем команд. При этом не проводится никакой предварительной компиляции или проверки синтаксиса кода; если встречается строка с ошибочной командой, то она игнорируется. Очевидно, что если вам приходится часто выполнять одни и те же действия, то использование командных файлов может сэкономить много времени.
Вывод сообщений и дублирование команд
По умолчанию команды пакетного файла перед исполнением выводятся на экран, что выглядит не очень эстетично. С помощью команды ECHO OFF можно отключить дублирование команд, идущих после нее (сама команда ECHO OFF при этом все же дублируется). Например,
Для восстановления режима дублирования используется команда ECHO ON . Кроме этого, можно отключить дублирование любой отдельной строки в командном файле, написав в начале этой строки символ @ , например:
Таким образом, если поставить в самое начало файла команду
то это решит все проблемы с дублированием команд.
В пакетном файле можно выводить на экран строки с сообщениями. Делается это с помощью команды
Команда ECHO . (точка должна следовать непосредственно за словом «ECHO») выводит на экран пустую строку. Например,
Часто бывает удобно для просмотра сообщений, выводимых из пакетного файла, предварительно полностью очистить экран командой CLS .
Используя механизм перенаправления ввода/вывода (символы > и >>), можно направить сообщения, выводимые командой ECHO , в определенный текстовый файл. Например:
С помощью такого метода можно, скажем, заполнять файлы-протоколы с отчетом о произведенных действиях. Например:
Использование параметров командной строки
При запуске пакетных файлов в командной строке можно указывать произвольное число параметров, значения которых можно использовать внутри файла. Это позволяет, например, применять один и тот же командный файл для выполнения команд с различными параметрами.
Для доступа из командного файла к параметрам командной строки применяются символы %0, %1, …, %9 или %* . При этом вместо %0 подставляется имя выполняемого пакетного файла, вместо %1, %2, …, %9 — значения первых девяти параметров командной строки соответственно, а вместо %* — все аргументы. Если в командной строке при вызове пакетного файла задано меньше девяти параметров, то «лишние» переменные из %1 – %9 замещаются пустыми строками. Рассмотрим следующий пример. Пусть имеется командный файл copier.bat следующего содержания:
Если запустить его из командной строки с двумя параметрами, например
то на экран выведется сообщение
и произойдет копирование каталога C:\Programs со всеми его подкаталогами в D:\Backup.
При необходимости можно использовать более девяти параметров командной строки. Это достигается с помощью команды SHIFT , которая изменяет значения замещаемых параметров с %0 по %9 , копируя каждый параметр в предыдущий, то есть значение %1 копируется в %0 , значение %2 – в %1 и т.д. Замещаемому параметру %9 присваивается значение параметра, следующего в командной строке за старым значением %9 . Если же такой параметр не задан, то новое значение %9 — пустая строка.
Рассмотрим пример. Пусть командный файл my.bat вызван из командной строки следующим образом:
Тогда %0=my.bat, %1=p1, %2=p2, %3=p3 , параметры %4 – %9 являются пустыми строками. После выполнения команды SHIFT значения замещаемых параметров изменятся следующим образом: %0=p1, %1=p2, %2=p3 , параметры %3 – %9 – пустые строки.
При включении расширенной обработки команд SHIFT поддерживает ключ /n , задающий начало сдвига параметров с номера n , где n может быть числом от 0 до 9.
Например, в следующей команде:
параметр %2 заменяется на %3 , %3 на %4 и т.д., а параметры %0 и %1 остаются без изменений.
Команда, обратная SHIFT (обратный сдвиг), отсутствует. После выполнения SHIFT уже нельзя восстановить параметр (%0) , который был первым перед сдвигом. Если в командной строке задано больше десяти параметров, то команду SHIFT можно использовать несколько раз.
В командных файлах имеются некоторые возможности синтаксического анализа заменяемых параметров. Для параметра с номером n (%n) допустимы синтаксические конструкции (операторы), представленные в табл. 3.1.
Операторы | Описание |
---|---|
% Fn | Переменная %n расширяется до полного имени файла |
% Dn | Из переменной %n выделяется только имя диска |
% Pn | Из переменной %n выделяется только путь к файлу |
% Nn | Из переменной %n выделяется только имя файла |
% Xn | Из переменной %n выделяется расширение имени файла |
% Sn | Значение операторов N и X для переменной %n изменяется так, что они работают с кратким именем файла |
% $PATH:n | Проводится поиск по каталогам, заданным в переменной среды PATH , и переменная %n заменяется на полное имя первого найденного файла. Если переменная PATH не определена или в результате поиска не найден ни один файл, эта конструкция заменяется на пустую строку. Естественно, здесь переменную PATH можно заменить на любое другое допустимое значение |
Данные синтаксические конструкции можно объединять друг с другом, например:
DPn — из переменной %n выделяется имя диска и путь,
NXn — из переменной %n выделяется имя файла и расширение.
Рассмотрим следующий пример. Пусть мы находимся в каталоге C:\TEXT и запускаем пакетный файл с параметром Рассказ.doc ( %1=Рассказ.doc ). Тогда применение операторов, описанных в табл. 3.1, к параметру %1 даст следующие результаты: