Как запустить системный "гудок" из встроенного в компьютер динамика, используя командный файл?

Я написал пакетный скрипт в интерактивном режиме для выполнения некоторых задач.

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

Теперь я хочу добавить команду "Интерактивный сигнал тревоги", которая будет издавать небольшой короткий звуковой сигнал (например, тот, который мы включаем на наших ПК), чтобы предупредить пользователя пакета о новых вопросах.

Я не знаю, возможно ли это или нет, но самое главное для меня - НЕ использовать приложение с графическим интерфейсом, такое как WMP или около того. Я просто хочу сделать это из фона, даже если этот звуковой сигнал должен быть сделан из свободного динамика или с помощью стороннего CLI-приложения (кстати, я установил Cygwin на Win7-x64).

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

Итак, кто-нибудь, пожалуйста, скажите мне, как это сделать?

Ценю твою помощь :)

Ответ 1

Невозможно ввести BEL непосредственно в (например) блокнот.

Чтобы получить его, введите echo ^G>>yourbatch.bat в командной строке (не набирайте ^ G, а <Control>-G, который будет отображаться как ^G на экране). Это ставит странный вид персонажа в конец вашего файла. Это символ BEL 0x007 ( "control-G" ). Просто скопируйте/переместите его в любую команду echo, как вам нравится. Также

set /p "input=^Ggive value: "

(где ^G представляет странный char)

Ответ 2

rundll32.exe Kernel32.dll,Beep 750,300

или

rundll32.exe cmdext.dll,MessageBeepStub

или

rundll32 user32.dll,MessageBeep

С функциями rundll вам не понадобятся специальные символы, такие как ^G. С помощью первого метода вы также можете установить частоту и время подачи звукового сигнала.

Вы можете также проверить это

Ответ 3

@echo off
echo BEEP.BAT by CSS---
echo PRESS ANY KEY TO HEAR A BEEP...
PAUSE>NUL
ECHO 
echo I BEEPED
PAUSE

после эха есть код управления ASCII ^ G. Просто скопируйте этот код и сохраните его как ASCII/ANSI с помощью текстового редактора.

Ответ 4

используйте команду ECHO для эха CTRL G

Ответ 5

Я думаю, что лучшим решением является отображение ^G файла из командной строки cmd, а затем введите этот файл из сценария, так что вам не нужно включать управляющие символы в сам пакетный файл:

C:\> echo ^G>beep.snd

Теперь в файле "beep.snd" есть символ ASCII 007, затем из файла .bat все, что вам нужно сделать, это напечатать его или скопировать на экран:

type beep.snd

или

copy beep.snd con > nul