如何使用批处理文件从内置的pc扬声器启动系统" beep"?

时间:2014-11-22 16:17:19

标签: windows batch-file cygwin

我已经以交互模式编写了一个批处理脚本,用于执行某些任务。

有时,这些任务需要很长时间才能完成,然后批处理会询问用户是否要继续执行下一个任务,或者返回批处理的主菜单或...等等。 p>

现在,我想要做的是添加一个"交互式警报"命令,听起来很小的哔哔声(例如:就像我们打开电脑时那样),提醒批处理用户提出新问题。

我不知道这是否可能,但对我来说最重要的是,不要使用像WMP这样的GUI应用程序。 我只是想从后台执行此操作,即使必须使用免费扬声器或使用第三方CLI应用程序(顺便说一句,我在Win7-x64上安装Cygwin)发出此哔声。 / p>

请注意,我会在交互式问题之前添加该警报命令,等待用户回答以进入下一阶段,因此我无法通过实现真正完成批处理错误的哔!

那么,有人请告诉我该怎么做?

感谢您的帮助:)

7 个答案:

答案 0 :(得分:20)

rundll32.exe Kernel32.dll,Beep 750,300

rundll32.exe cmdext.dll,MessageBeepStub

rundll32 user32.dll,MessageBeep

使用rundll功能,您不需要像^G这样的特殊符号。使用第一种方法,您还可以将frequency and the time you wan t设置为发出蜂鸣声。

您也可以查看this

答案 1 :(得分:10)

无法直接在(例如)记事本中输入BEL

要获取它,请在命令行中键入echo ^G>>yourbatch.bat(不要键入^ G,而应键入<Control>-G,这将显示为^G屏幕上)。这会在文件的末尾添加一个奇怪的字符。这是BEL字符0x007(“control-G”)。只需将其复制/移动到任何echo命令即可​​。还

set /p "input=^Ggive value: "

是可能的(其中^G代表那个奇怪的字符)

答案 2 :(得分:2)

以下可用于发出哔哔声

  • 无需暂停脚本
  • 不创建新行。
  • 不需要使用不可打印的字符
 Echo/| CHOICE /N 2> nul & rem BEL

这是对故意选择命令的误用,Echo通过通往选择的管道无效,导致了非中断错误。 STDERR重定向到nul,默认选择提示通过/N开关抑制,这意味着没有新行输出。

如果出于某种原因您想在整个脚本中重复使用这种烦人的音调,则可以将其定义为宏

Set "BEL=Echo/| CHOICE /N 2> nul"
%BEL%

答案 3 :(得分:1)

@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 :(得分:0)

使用ECHO命令回显CTRL G

答案 5 :(得分:0)

我认为更好的解决方案是在cmd提示符下将^G回显到文件,然后从脚本中键入该文件,这样就不必在批处理文件本身中包含控制字符:

C:\> echo ^G>beep.snd

现在,“ beep.snd”文件中包含一个ASCII 007字符,然后从.bat文件中键入或复制到屏幕即可:

type beep.snd

copy beep.snd con > nul

答案 6 :(得分:-1)

这对我有用。.

enter image description here

第4行有一个特殊字符,它忽略了stackoverflow, 代码粘贴在这里: hashb.in/long

第4行和第5行当然可以互换使用。