Есть ли способ отобразить окно сообщения из командного файла (аналогично тому, как xmessage
можно использовать bash-скрипты в Linux)?
153
Есть ли способ отобразить окно сообщения из командного файла (аналогично тому, как xmessage
можно использовать bash-скрипты в Linux)?
Ответы:
Я хотел бы сделать очень простой файл VBScript и вызывать его, используя CScript для анализа параметров командной строки.
Что-то вроде следующего сохранено в
MessageBox.vbs
:Который вы бы назвали, как:
MsgBox
Ссылка, если вы заинтересованы в этом пути.источник
Прежде всего, DOS не имеет к этому никакого отношения, вам, вероятно, нужно решение для командной строки Windows (опять-таки: нет DOS, чисто Windows, просто не Windows, а консоль).
Вы можете использовать метод VBScript, предоставленный boflynn, или вы можете использовать его неправильно
net send
илиmsg
.net send
работает только на старых версиях Windows:Это также зависит от службы Messenger для запуска, хотя.
Для более новых версий (XP и далее, по-видимому):
Следует отметить, что сообщение, отправленное с использованием,
msg.exe
будет длиться только 60 секунд. Это может однако быть отменено с/time:xx
выключателем.источник
Может показывать небольшую вспышку, но никаких временных файлов не требуется. Должен работать вплоть до эры IE5 (IIRC).
Не забывайте избегать скобок, если вы используете
if
:источник
close() was unexpected at this time
.^
escape-символы в файле batОткроется другое окно командной строки:
источник
start cmd /c "@echo off & mode con cols=18 lines=2 & echo My Popup Message & pause>nul"
изменитеcols=18
количество символов в сообщении + 2. Иlines=2
сколько бы строк не было + 1.cmd /k
Пытаться :
Если вы используете command.com в Windows XP, откроется окно сообщения.
Я понимаю, что открытие нового окна cmd не совсем то, о чем вы просили. Вы также можете использовать VBScript и использовать его со своим файлом .bat. Вы бы открыли его из файла bat с помощью этой команды:
Для этого нужно изменить каталог, в котором command.com будет искать файлы, затем в следующей строке:
Затем вы создаете новый документ Блокнот , введите
Затем вы должны сохранить его как файл .vbs (поместив «.vbs» в конце имени файла), сохранить как «Все файлы» в раскрывающемся списке под именем файла (чтобы он не сохранялся как .txt ), затем нажмите Сохранить!
источник
<script/>
тег.msg *
вам будет предложено ввести сообщение, а затем Ctrl-Z. Здесь вы можете ввести разрывы строк, которые появятся в вашем сообщении.Еще несколько способов.
1) Самый вызывающий и хакерский - он использует IEXPRESS для создания небольшого exe-файла, который создаст всплывающее окно с помощью одной кнопки ( он может создавать еще два типа всплывающих сообщений ). Работает на КАЖДЫХ окнах от XP и выше:
2) Использование
MSHTA
. Также работает на каждой машине с Windows от XP и выше (несмотря на то, что OP не хочет «внешних» языков, JavaScript здесь сведен к минимуму). Должен быть сохранен как.bat
:или в одну строку:
или
или
3) Вот параметризованный
.bat/jscript
гибрид (должен быть сохранен какbat
). Он снова использует JavaScript, несмотря на запрос OP, но, поскольку это bat, его можно без проблем назвать файлом bat. Он использует POPUP, который позволяет немного больше контроля, чем более популярный MSGBOX . Он использует WSH, но не MSHTA, как в примере выше.4) и один
jscript.net/.bat
гибрид (должен быть сохранен как.bat
). На этот раз он использует.NET
и компилирует небольшой.exe
файл, который можно удалить:5) и в конце один единственный вызов powershell, который создает всплывающее окно (может вызываться из командной строки или из пакета, если установлен powershell):
6) И подход dbenham видел здесь
7 ) Для уведомлений в системном трее вы можете попробовать это :
источник
Таким образом, ваш пакетный файл создаст сценарий VBS и покажет всплывающее окно. После запуска пакетный файл удалит этот промежуточный файл.
Преимущество использования MSGBOX заключается в том, что он действительно настраиваемый (измените название, значок и т. Д.), Тогда как MSG.exe не так уж и много.
источник
Вот вариант PowerShell, который не требует загрузки сборок перед созданием окна, однако он работает заметно медленнее (~ + 50%), чем команда PowerShell MessageBox, размещенная здесь @npocmaka:
Вы можете изменить последний параметр с «0x0» на значение ниже для отображения значков в диалоговом окне (см. « Метод всплывающих окон» для дальнейшего использования):
0x10 Стоп
0x20 Вопросительный знак
0x30 Восклицательный знак
0x40 Информационный знак
Адаптировано из статьи Microsoft TechNet PowerTip: используйте PowerShell для отображения всплывающего окна .
источник
–Вы можете написать любые числа от 0,1,2,3,4 вместо 0 (перед символом «+»), и вот значение каждого числа:
–Вы можете написать любые числа от 16,32,48,64 вместо 16 (после символа «+»), и вот значение каждого числа:
источник
Msg * "вставьте ваше сообщение сюда"
работает нормально, просто сохраните как .bat файл в блокноте или убедитесь, что установлен формат «все файлы»
источник
msg %SESSIONNAME% msg
Это сообщение ждет до тех пор, пока не будет нажата кнопка ОК (по умолчанию оно длится всего одну минуту) и работает нормально в Windows 8.1
источник
msg * /time:0 /w <C:\Somewhere\Message.txt
где в файле обычный текст (содержащий CrLf).Для этого вам нужна небольшая программа, которая отображает окно сообщения и запускает его из вашего пакетного файла.
Вы можете открыть консольное окно, в котором отображается приглашение, но получить окно сообщения с графическим интерфейсом, используя cmd.exe и только друзей, невозможно, AFAIK.
источник
Я использую утилиту с именем msgbox.exe отсюда: http://www.paulsadowski.com/WSH/cmdprogs.htm
источник
Вы можете использовать Zenity . Zenity позволяет выполнять диалоговые окна в командной строке и сценариях оболочки. Больше информации также можно найти в Википедии .
Это кроссплатформенный: установщик Windows для Windows можно найти здесь .
источник
Следуя ответу @ Fowl, вы можете улучшить его, установив тайм-аут только на 10 секунд, используя следующее:
Смотрите здесь для более подробной информации.
источник
Вы можете вызвать функцию DLL из user32.dll я думаю, что-то вроде
Печатая это с моего телефона, не судите меня ... в противном случае я бы связал дополнительные флаги.
источник
rundll32.exe user32.dll,MessageBoxA X
отобразить окно сообщения с X в качестве заголовка, когда я делаю это в поле «Выполнить». Независимо от того, что я делаю X быть, я не могу интерпретировать его как несколько параметров - все идет в заголовок. Таким образом,rundll32.exe user32.dll,MessageBoxA (0, "MyTitle", "MyText", 0)
отображается окно сообщения с заголовком(0, "MyTitle", "MyText", 0)
Но я не могу заставить его работать ВСЕ из командной строки - только из поля Выполнить. В командной строке это вообще ничего не делает. Работает ли он наверняка из командной строки или из пакетного файла или только из поля «Выполнить»?msg * /server:127.0.0.1 Введите ваше сообщение здесь
источник
where msg
возвращаетсяC:\Windows\System32\msg.exe
. Я думаю, что вы думаете оnet send
Это приложение может сделать это, если вы преобразуете (упаковываете) свои командные файлы в исполняемые файлы.
Простое окно сообщений
Окно сообщения об ошибке
Отмена Попробовать еще раз
4) «Никогда не спрашивай меня снова»
источник
Лучший вариант
set my_message=Hello world
&& start cmd /c "@echo off & mode con cols=15 lines=2 & echo %my_message% & pause>nul"
Описание:
lines=
количество строк, плюс 1cols=
количество символов в сообщении, плюс 3 (однако, минимум должен быть15
)Автоматически рассчитанная
cols
версия:set my_message=Hello world
&& (echo %my_message%>EMPTY_FILE123 && FOR %? IN (EMPTY_FILE123 ) DO SET strlength=%~z? && del EMPTY_FILE123 ) && start cmd /c "@echo off && mode con lines=2 cols=%strlength% && echo %my_message% && pause>nul"
источник
start cmd /c "@echo off & mode con cols=18 lines=2 & echo My Popup Message & pause>nul"
). Твой нет. Это повторяет сообщение, но не в состоянии установить размер окна, возвращающегосяThe screen cannot be set to the number of lines and columns specified.
по крайней мере в моей Windows 7.x
в текущем каталоге нет файла, или вы не против потерять его.x
, ваша команда просто не выполняется. Не благодари меня и, пожалуйста, просто исправь свой код. Вам даже не нужно использовать однострочник. И если вы считаете, что ваш код настолько хорош, пожалуйста, опубликуйте его в Code Review .Вот мой пакетный скрипт, который я собрал, основываясь на хороших ответах здесь и в других постах
Вы можете установить тайм-аут заголовка и даже сон, чтобы запланировать его для последнего и \ n для новой строки
Назовите его popup.bat и поместите его в папку Windows Path для глобальной работы на вашем компьютере.
Например,
popup Line 1\nLine 2
появится 2-строчное всплывающее окно (введитеpopup /?
для использования)Вот код
источник
он должен появиться ТОЛЬКО в vm, так что технически должен быть такой код:
источник