我已经以交互模式编写了一个批处理脚本,用于执行某些任务。
有时,这些任务需要很长时间才能完成,然后批处理会询问用户是否要继续执行下一个任务,或者返回批处理的主菜单或...等等。 p>
现在,我想要做的是添加一个"交互式警报"命令,听起来很小的哔哔声(例如:就像我们打开电脑时那样),提醒批处理用户提出新问题。
我不知道这是否可能,但对我来说最重要的是,不要使用像WMP这样的GUI应用程序。 我只是想从后台执行此操作,即使必须使用免费扬声器或使用第三方CLI应用程序(顺便说一句,我在Win7-x64上安装Cygwin)发出此哔声。 / p>
请注意,我会在交互式问题之前添加该警报命令,等待用户回答以进入下一阶段,因此我无法通过实现真正完成批处理错误的哔!
那么,有人请告诉我该怎么做?
感谢您的帮助:)
答案 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)