Как вывести сообщение в cmd
Работа с командной строкой¶
Командная строка позволяет вводить и выполнять команды операционной системы и другие компьютерные команды. Вводя команды, можно выполнять на компьютере различные задачи, не пользуясь мышью или сенсорным вводом.
В разделе перечислены базовые приемы работы в командной строке Windows.
Запуск командной строки¶
Для запуска командной строки воспользуйтесь одним из следующих способов:
Ввод команд¶
Команды вводятся посредством ввода с клавиатуры. Простейшая команда help выводит список всех доступных команд. Также вы можете просмотреть полный перечень команд в статье Список команд Windows ( Windows CMD ).
Перечень основных команд и примеры их использования приведены в разделе Основные команды данного руководства.
Bat-файлы¶
Используя команды можно написать bat файлы,которые позволяют упрощать и автоматизировать выполнение задач. Более подробно работа с bat файлами рассматривается в статьях:
Автодополнение путей файлов¶
Если папка состоит из нескольких слов, разделенных пробелом или из кириллических символов, то весь путь берется в кавычки, например, cd «C:\Documents and Settings»
Копирование текста в/из командной строки¶
По умолчанию копирование текста из командной строки отключено. Чтобы его включить необходимо:
Для копирования текста из командной строки достаточно выделить текст и щелкнуть правой кнопкой мыши, выделенный текст скопируется в буфер обмена. Для вставки текста в командную строку также используется нажатие правой кнопкой мыши.
Вывод информации в текстовый файл и перенаправление данных¶
Данные команды называются операторами перенаправления.
Команда ECHO наверно является одной из самых простых и самых используемых команд. Применяется для вывода текстовых сообщений на стандартный вывод и для переключения режима отображения команд на экране.
Формат командной строки:
ECHO [сообщение] отобразить текст сообщения на экране.
Режим вывода команд на экран (ECHO) включен.
Для вывода пустой строки, используется команда ECHO с точкой:
Наиболее распространено использование команды echo в командных файлах. Практически любой командный файл начинается командой
Очень часто команда echo используется для записи сообщений в текстовый файл с использованием перенаправлением вывода:
Echo ERORLEVEL=%ERRORLEVEL% >> logfile.txt
Echo Конец работы, %DATE% в %TIME% >>logfile.txt
В текстовый файл logfile.txt записывается дата и время начала работы командного файла, некоторые результаты и время завершения.
Нередко, команда echo используется для создания нового файла:
ECHO ^%ERRORLEVEL^% = %ERRORLEVEL%
Особенностью команды ECHO является добавление служебных символов возврата каретки и перевода строки 0x0D и 0x0A (Carriage Return и Line Feed) в конец выводимого текста. Командный файл следующего содержания выводит текст из 3-х строк:
Если же требуется вывести весь текст в одну строку, обычно используют эмуляцию команды ECHO командой SET с параметром /P, используемой для организации диалога с пользователем, когда выводится сообщение, на которое требуется ответ. Выводимое сообщение можно использовать таким же образом, как и в команде ECHO, а вместо ответа можно использовать ввод с фиктивного устройства nul :
При выполнении такого командного файла сообщение на экране будет представлено одной строкой:
Для подачи звуковых сигналов можно использовать вывод служебного символа с кодом 07 (BELL). Достаточно просто включить его в поток выходных данных, что зависит от возможностей редактора, который используется для написания командного файла. Можно использовать и стандартные возможности командной строки, добавив комбинацию CTRL+G :
echo (вывод на экран)
Отображает сообщения или включает или отключает функцию вывода команд. При использовании без параметров echo отображает текущее значение эха.
Синтаксис
Параметры
Параметр | Описание |
---|---|
[вкл. | выкл.] | Включает или выключает функцию вывода команд. Команда по умолчанию включена. |
Задает текст, отображаемый на экране. | |
/? | Отображение справки в командной строке. |
Комментарии
После выключения эхо Командная строка не отображается в окне командной строки. Чтобы отобразить командную строку, введите команду echo on.
Если используется в пакетном файле, Включение и вывод не влияют на параметр в командной строке.
Чтобы предотвратить вывод определенной команды в пакетном файле, вставьте @ знак перед командой. Чтобы предотвратить вывод всех команд в пакетном файле, включите команду echo off в начале файла.
Примеры
Чтобы вывести на экран пустую строку, введите:
Не включайте пробел перед точкой. В противном случае вместо пустой строки отображается точка.
Чтобы запретить вывод команд в командной строке, введите:
Когда эхо отключено, Командная строка не отображается в окне командной строки. Чтобы снова отобразить командную строку, введите команду echo on.
Чтобы предотвратить отображение на экране всех команд в пакетном файле (включая команду echo off ), в первой строке типа пакетного файла:
Команда echo в командной строке используется для вывода данных на экран консоли или же в файл, и для включения/выключения эхо-отображения команд.
Эхо-отображения – вывод на экран самих команд, а не только результат их выполнения. Так, если мы пропишем в сценарии следующую строку кода:
echo Hello World & dir
Для простоты запуска сценариев, пропишите в командной строке:
Вместо пропишите путь к каталогу, в котором собираетесь хранить сценарий. Дайте сценарию простое имя, например, test.bat. Теперь в переменных окружения будет прописан путь к тестируемому сценарию, и вам не придется лишний раз делать переходы по папкам.
Hello World – да, да, зачем ломать традиции. Наверно, автор каждой книги по программированию начинает свои примеры с это фразы… Можно даже составить целую подборку в стиле “Привет Мир на тысячи языках программирования”. Как не странно, но по этому запросу в выдаче Яндекса и правда большая часть сайтов посвященных программированию!
Для управления эхо-отображениями после echo в командной строке нужно прописать off (выключить эхо) или on (включить эхо). Теперь давайте перепишем предыдущий пример:
echo off echo Hello World & dir
Хорошо, теперь последняя строка уже не отображается, но отображается первая, что не является показателем достигнутой цели, как это исправить, я покажу дальше, по ходу статьи.
Как уже упоминалось, утилита командной строи (cmd) echo позволяет выводить данные в файл, для это после нее нужно прописать оператор > (выводит данные в файл и полностью переписывает его содержимое) или >> (выводит данные в файл, и если он не пустой, дописывает данные в конец) и путь к файлу, или просто имя файла:
echo off echo Hello World>d:\work\hello.txt
В данном случае, если запустить сценарий с этим кодом из консоли командной строки (cmd), то в самом окне cmd отобразится первая строка кода, а в файл hello.txt запишется строка Hello World.
Для справки: что бы вывести на экран консоли пустую строку, нужно ввести команду эхо и сразу после нее прописать точку: “echo.”, межу командой и точкой не должно быть пробела.
Хорошо, теперь давайте рассмотрим cmd команду @, которая довольно часто используется на ровне с ЭХО. Данная команда предотвращает отображение эхо-команд для отдельной строки, то есть, команда @ фактически является аналогом echo off, только не для всего кода, а лишь для отельной строчки, в которой она собственно и фигурирует.
Давайте перепишем предыдущий пример:
@echo off echo Hello World>d:\work\hello.txt
Бинго, теперь после запуска сценария в окне командной строки cmd echo off не будет отображаться.
Или можно так прописать:
@echo Hello World>d:\work\hello.txt @dir>>d:\work\hello.txt
В данном случае мы не использовали команду echo off, зато прописали оператор cmd @ для каждой строки.
Можно даже попробовать в окне командной оболочки ввести @echo off на выполнение, в таком случае пропадет и приглашение командной строки.
По теме данной статьи можно провести аналогию с сервером сценариев Windows Script Host, в котором объект WScript.Shell использует аналогичную команду эхо для вывода данных. Так же, если мне память не изменять, функция эхо применяется в языке программирования php. Тот, кто пробовал свои силы в различных языках программирования с легкостью сможет провести между ними аналоги и найти общие точки.
Спасибо за внимание. Автор блога Владимир Баталий
Сообщение пользователю в cmd
Какие возможности имеются в командном файле для привлечения внимания пользователя в случае какого-либо события? Команды ECHO во многих случаях недостаточно, ведь помимо просто вывода текста хотелось бы:
В современных решения пользовательского интерфейса Windows уведомление работает не так, что окно внезапно выскакивает поверх всех, прерывая работу пользователя, а вежливо уведомляет пользователя о событии, мигая значком программы или командного файла на панели задач. Поэтому пользователь может спокойно продолжить свою работу, например, закончить какой-то документ, а затем щелкнуть по значку и посмотреть, что же там случилось.
Поднять окно командного файла
Чтобы поднять наверх окно командного файла, можно использовать возможности WSH: подготавливаем скрипт activate.js, который использует метод WshShell.AppActivate для окна, заголовок которого передаётся параметром командной строки:
Затем в командном файле устанавливаем заголовок окна и в нужный момент вызываем activate.js:
То есть если командный файл выполнился успешно, он тихо закрывается, не отвлекая пользователя. Если возникла ситуация, о которой нужно проинформировать пользователя, то окно поднимается наверх, показывая информацию об ошибке.
Для наглядности будет полезно выделить цветом информацию об ошибке.
Показать всплывающее сообщение
Всплывающее сообщение MessageBox содержит текст и значок, это выглядит красивее, чем консольное окно, но после его закрытия пользователю придётся искать окно командного файла вручную.
Всплывающее окно WshShell.Popup
Этот вариант использует возможности WSH и не требует установки дополнительных программ.
Используется метод WshShell.Popup в скрипте popup.js
Соответственно, командный файл вызывает его в случае ошибки:
Всплывающее окно NHMB
Программа nhmb также показывает всплывающее окно, позволяя задавать символы перевода строки в параметрах (и соответственно, в командном файле), а также отображая таймаут в заголовке окна.
В заголовке окна отображается время в секундах (55), оставшееся до автоматического закрытия окна и продолжения работы командного файла.