控制台发出哔声字符代码 - 错误号码?

时间:2017-07-30 12:37:03

标签: windows batch-file cmd windows-console

ASCII字符代码0x07是一个哔声字符。

打开CMD并单击 ALT + 007 产生:

enter image description here

当我点击 ENTER 时 - 我听到一声哔哔声。这很好。

我已经搜索了如何在批处理文件的末尾添加一声哔哔声,我发现这是解决方案:(我将其粘贴为图像,因为SO没有显示编辑后的圆形子弹:

enter image description here

这确实有效并确实发出声音。在ECHO上使用HEX查看器(无法比较)进行检查时,圆形项目符号为:

enter image description here

但如果我手动将 ALT + 7 添加到文档中,我会看到:

enter image description here

这是一个95作为十六进制 - 它不是一个哔哔声。另外,我去了工作批处理文件并添加了一个新行,其中 ALT + 7

enter image description here

但是通过HEX查看器查看:

enter image description here

问题:

我有点困惑。点击 Alt + 65 确实会在任何地方产生A

那么为什么在Windows GUI中保存时,蜂鸣声会有所不同并且不起作用?

在控制台中,如果我点击ALT+007我会^G(它会发出哔哔声),但是当我点击ALT+7时,我会看到一个圆圈,这不是一声嘟嘟声:

以下是:

enter image description here

通过记事本++的另一个有趣的观察:

enter image description here

我认为它与编码等有关,但我不理解这种不一致。

3 个答案:

答案 0 :(得分:1)

这不是一个真正的答案,但对于评论来说太大了。

"手动将ALT + 7添加到文档"部分产生了不应该产生的奇怪结果。结果应该是单个0x07字符。当你按下ALT + 7时,你的编辑可能会做一些有趣的事。

此类故障排除的问题在于,您使用的工具具有扭曲实验的复杂行为。这些工具也有奇怪的模式和奇怪的状态。例如,控制台子系统的编码是什么?

我试过这个:copy con x.bat键入echo后跟Alt+7然后Ctrl+Z并获得一个哔哔的批处理文件。这个角色看起来像个子弹 然后我尝试使用Alt+007,我也收到了一个哔哔声的批处理文件,但现在该字符为^G

C:\>提示符下,我输入echo后跟Alt+7,还生成了一颗子弹,但没有发出哔哔声。但Alt+007看起来像^G确实会发出哔哔声。去图。

我会说忽略当你试图输入控制字符时发生的不一致,因为有很多软件涉及这样做,这是你无法控制的,显然是以神秘的方式工作。 (我知道,不是答案。)

答案 1 :(得分:0)

我有一个建议的解决方法。把它放在你的脚本中:

forfiles /p "%~dp0" /m "%~nx0" /c "cmd /c echo 0x07"

对于脚本目录中与脚本文件名匹配的每个文件(例如1次),它将回显ASCII字符7,并产生噪音。来自forfiles /?文档:

  

要在命令行中包含特殊字符,请使用0xHH格式的字符的十六进制代码(例如,标签为0x09)。内部CMD.exe命令应以“cmd / c”开头。

forfiles是一个方便的实用程序,只要您需要不可打印或扩展的字符就可以滥用。

至于我推测为什么 Alt + 0 0 7 的行为不符合预期,我相信控制台可以在与窗口化应用程序不同的代码页上工作(console = 437,对于en-US,IIRC,窗口= 1252)。我也在努力解决这个问题for reasons,最终在该JavaScript项目中使用了用于控制台字符1到31的符号的硬编码。

答案 2 :(得分:0)

要在cmd文件中发出蜂鸣声:

解决方案1 ​​

C:\>rundll32 user32.dll,MessageBeep -1

解决方案2

C:\>echo ^G>beep.txt
C:\>type beep.txt

NB: ^ G是通过按Ctrl + G获得的,您可以通过编辑beep.txt来查看字符