Как вывести на экран сообщение через командную строку: Вывод сообщений и переключение режима отображения команд на экране.

Вывод сообщений и переключение режима отображения команд на экране.





Команда ECHO наверно является одной из самых простых и самых
используемых команд. Применяется для вывода текстовых сообщений на стандартный вывод
и для переключения режима отображения команд на экране.

Формат командной строки:



ECHO [ON | OFF]
— включить / выключить режим отображения вводимых команд на экране.

ECHO [сообщение] отобразить текст сообщения на экране.

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

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. % = %ERRORLEVEL%

Особенностью команды ECHO является добавление служебных символов возврата каретки и перевода строки 0x0D и 0x0A (Carriage Return и Line Feed) в конец выводимого текста. Командный файл следующего содержания выводит текст из 3-х строк:

echo text1

echo text2

echo text3

Если же требуется вывести весь текст в одну строку, обычно используют эмуляцию команды ECHO командой SET с параметром /P, используемой для организации диалога с пользователем, когда выводится сообщение, на которое требуется ответ. Выводимое сообщение можно использовать таким же образом, как и в команде ECHO, а вместо ответа можно использовать ввод с фиктивного устройства nul:

echo off

При выполнении такого командного файла сообщение на экране будет представлено одной строкой:

text1 text2text3

Для подачи звуковых сигналов можно использовать вывод служебного символа с кодом 07 (BELL). Достаточно просто включить его в поток выходных данных, что зависит от возможностей редактора, который используется для написания командного файла. G > beepcmd.bat

После выполнения данной команды будет создан командный файл beepcmd.bat, который выводит командой ECHO служебный символ 07, т.е. включает писк динамика. При необходимости его можно вызывать в других командных файлах с помощью команды CALL.



echo (вывод на экран) | Microsoft Learn





Twitter




LinkedIn




Facebook




Адрес электронной почты










  • Статья

  • Чтение занимает 2 мин

Отображает сообщения или включает или отключает функцию повторения команды. Если используется без параметров, echo отображает текущий параметр эха.

echo [<message>]
echo [on | off]

Параметры

ПараметрОписание
[on | off]Включает или отключает функцию повторения команд. Повтор команды включен по умолчанию.
<message>Указывает текст, отображаемый на экране.
/?Отображение справки в командной строке.
  • Команда echo <message> особенно полезна при отключении эха . Чтобы отобразить сообщение длиной в несколько строк без каких-либо команд, можно включить несколько echo <message> команд после команды echo off в пакетную программу.

  • После отключения echo командная строка не отображается в окне командной строки. Чтобы отобразить командную строку, введите echo on. ).

Примеры

Чтобы отобразить текущий параметр эха , введите:

echo

Чтобы повторить пустую строку на экране, введите:

echo.

Примечание

Не включайте пробел до периода. В противном случае точка отображается вместо пустой строки.

Чтобы предотвратить повтор команд в командной строке, введите:

echo off

Примечание

Если функция echo отключена, командная строка не отображается в окне командной строки. Чтобы снова отобразить командную строку, введите echo on.

Чтобы все команды в пакетном файле (включая команду echo off ) не отображались на экране, в первой строке типа пакетного файла:

@echo off

Команду echo можно использовать как часть оператора if . Например, чтобы найти в текущем каталоге любой файл с расширением RPT и ввести сообщение, если такой файл найден, введите следующее:

if exist *. rpt echo The report has arrived.

Следующий пакетный файл ищет в текущем каталоге файлы с расширением имени файла .txt и отображает сообщение с указанием результатов поиска:

@echo off
if not exist *.txt (
echo This directory contains no text files.
) else (
   echo This directory contains the following text files:
   echo.
   dir /b *.txt
   )

Если при запуске пакетного файла .txt файлы не найдены, отображается следующее сообщение:

This directory contains no text files.

При обнаружении .txt файлов при запуске пакетного файла отображаются следующие выходные данные (в этом примере предполагается, что файлы File1.txt, File2.txt и File3.txt существуют):

This directory contains the following text files:
File1.txt
File2.txt
File3.txt
  • Условные обозначения синтаксиса команд командной строки






окон — Как отобразить Msgbox напрямую из CMD

спросил

Изменено
1 год, 9 месяцев назад

Просмотрено
177 тысяч раз

Я хочу отобразить сообщение пользователю с помощью CMD.
Я знаю, как это сделать, создав файл .vbs (VBScript) и выполнив его из CMD следующим образом: 9& «Строка 2», 262192, «Заголовок»)> File.vbs
запустить файл.vbs

Но я хочу отобразить сообщение без создания файла, прямо из CMD. Возможно, используя команду для запуска VBScripts прямо из CMD.

  • окна
  • командная строка
  • vbscript

3

Как уже говорили другие, это невозможно сделать только с помощью cmd, но, хотя это название вопроса, мне кажется, что часть без файла для вас важнее, и при определенных обстоятельствах это может быть возможно.

С помощью powershell должна быть возможность запускать код без какого-либо файла, например:

 PowerShell -Command "Add-Type -AssemblyName PresentationFramework; [System.Windows.MessageBox]::Show('Hello World')"
 

VBS не разрешает прямое выполнение кода через cscript или wscript, а mshta позволяет. Вы можете использовать его так (если вам нужно несколько строк, используйте «:» в качестве разделителя):

 mshta vbscript:Execute("msgbox ""Hello World"":close")
 

Поскольку он основан на ie, на него могут повлиять некоторые ограничения gpo, поэтому, если у вас есть выбор, powershell, вероятно, является более безопасным выбором.

1

Как предложил @wysiwyg, в версиях Pro/Business* Windows вы ищете команду Msg . Он доступен во всех современных версиях Windows (по крайней мере, начиная с XP). Чтобы отобразить сообщение для текущего пользователя, вошедшего в систему, выполните следующее:

 msg %username% Ваше сообщение здесь
 

Результат выглядит так:

Одна из особенностей этой команды заключается в том, что вы не можете настроить текст заголовка.

Подробнее о Msg можно узнать на сайте TechNet.


*Если вам нужно решение, которое работает на всех выпусках Windows , включая Home , то, по моему мнению, метод VBScript, о котором вы уже знаете, является самым простым решением этой проблемы. Он работает со всеми современными версиями и выпусками Windows в конфигурации по умолчанию и прост в использовании.

2

Сегодня мне нужно было что-то подобное. Поскольку я не смог найти решение для внешних зависимостей, которое мне понравилось, поскольку я не очень люблю VBScript/Powershell, я пошел дальше и написал одно:

https://github.com/cubiclesoft/messagebox-windows

окна сообщений, которые он производит, являются модальными для текущего окна консоли. То есть пользователь ничего не может сделать, пока не закроет диалог. Кроме того, код возврата из Вызов MessageBox() возвращается вызывающей стороне, чтобы сценарий мог реагировать на любую нажатую кнопку. И, конечно же, он поддерживает полный набор параметров MessageBox() Win32 API.

Добавление исполняемого файла размером 80 КБ в микс может понравиться не всем. Однако он статически связан со средой выполнения VC++ и поддерживает Unicode, что объясняет, почему файл такой большой, учитывая минималистичный характер того, что он делает. И есть небольшая проблема, связанная с невозможностью легко передавать новые строки из командной строки для отображения многострочных сообщений. Небольшим преимуществом является то, что диалоговое окно отображается за меньшее время, чем любое другое решение, представленное до сих пор.

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

https://www. paralint.com/projects/notifu/

Отображает всплывающее окно в области уведомлений о состоянии экрана с помощью IUserNotification. Недостатком является то, что исполняемый файл Notifu занимает всего 240 КБ. Еще один неудачный пример того, что COM создает ненужное раздувание и заставляет меня желать, чтобы для этой функции был простой и легкий API.

Для чего-то кроссплатформенного есть зенит. Это в основном для Linux, но есть и порты для Mac и Windows. Порт zenity для Windows имеет размер более 1 МБ, потому что GTK сильно раздут.

2

Кроме того, с внешним (не родным для Windows) исполняемым файлом есть

 nircmd infobox "msg" "title"
 

Если у вас есть доступ к компилятору VB6, то этот однострочный файл создает исполняемый файл размером 5,5 КБ:

 дополнительный основной
  команда msgbox
конец суб
 

Чтобы отобразить сообщение пользователю через RTR, я использую следующую команду:

 msg %username% ваше сообщение
 

Если вы не знаете, кто является пользователем на этой машине, вы используете * для отправки сообщения каждой сессии на имя сервера.

 сообщение * ваше сообщение
 

арт. https://www.lifewire.com/msg-command-2618093

У меня есть способ сделать это с помощью cmd, но он в основном включает файл, но файл удаляется сразу после выполнения vbs. Так что это не совсем так. Вы можете сделать:

 echo x=msgbox("Эй! Вот сообщение!",Тип+Значок+Действие,"Эй! Вот заголовок!") > %tmp%\tmp. vbs
cscript //нолог %tmp%\tmp.vbs
дел %tmp%\tmp.vbs
 

Type+Icon+Action — это просто базовый vbs, для справки, здесь. https://therevisionist.org/wp-content/uploads/2016/03/vbscript_msgbox_chart-e145805

11.jpg?x47750
Код, который я показал вам, создает файл, содержащий код VBS, затем выполняет его с помощью cscript, затем удаляет файл после его выполнения, создавая впечатление, что он был вызван командной строкой cmd. Чтобы это выглядело более похоже, просто используйте @echo off . Надеюсь, это помогло!

0

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но никогда не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

.

windows 8.1 — всплывающее сообщение из командной строки

спросил

Изменено
5 лет, 3 месяца назад

Просмотрено
7к раз

В Windows XP эта команда:

 msg %USERNAME% Здравствуйте!
 

приводит к отображению всплывающего сообщения. Это не работает в Windows 8.1 и Windows 10 (не пробовал Windows 7), потому что сообщение недоступно. Существуют ли альтернативные простые параметры в более поздних версиях Windows?

ОБНОВЛЕНИЕ

Я скопировал msg.exe из установки Windows XP (%WINDIR%\System32) в мою установку Windows 8.1… и это работает! Это нормально, возможно, вместо этого я должен использовать более новую версию? Меня все еще интересует, есть ли другой (простой) вариант.