控制台蜂鸣字符代码 - 数字错误?
Console beep character code - wrong number?
ASCII字符编码0x07为蜂鸣字符
打开 CMD 并单击 ALT + 007 产生:
当我点击 ENTER - 我听到哔声。这很好。
我搜索了如何在批处理文件的末尾添加蜂鸣声,我发现这是解决方案:(我将其粘贴为图像,因为 SO 之后不显示圆形项目符号编辑):
这确实有效,而且确实能发出声音。在 ECHO
上用 HEX 查看器(beyond compare)检查时,圆子弹是:
但是如果我手动将 ALT+7 添加到文档中,我会看到:
这是十六进制的 95 - 而不是哔哔声。此外,我转到工作批处理文件并添加了一个新行 ALT+7 :
但通过十六进制查看器查看:
问题:
我有点困惑。单击 Alt+65 会在所有地方产生 A
。
那么为什么保存在 Windows GUI 中时蜂鸣声不同并且不起作用?
在控制台中,如果我单击 ALT+007
,我会得到 ^G
(它会发出哔哔声),但是当我单击 ALT+7
时,我会得到一个圆圈,这不是哔哔声:
这两个都是:
通过记事本++的另一个有趣观察:
我认为是编码等方面的问题,不明白其中的不一致
这不是一个真正的答案,但对于评论来说太大了。
"manually adding ALT+7 to the document" 部分产生了不应该产生的奇怪结果。结果应该是单个 0x07 字符。可能是您的编辑器在您按下 ALT+7 时做了一些有趣的事情。
这种故障排除的问题是您使用的工具具有扭曲实验的复杂行为。这些工具也有奇怪的模式和奇怪的状态。例如,您的控制台子系统的编码是什么?
我试过这个:copy con x.bat
输入 echo
,然后输入 Alt+7
,然后输入 Ctrl+Z
,得到了一个批处理文件。这个角色看起来像一颗子弹。
然后我尝试使用 Alt+007
,我也收到了一个哔哔声批处理文件,但字符现在是 ^G
。
在C:\>
提示符下,我输入了echo
,然后输入了Alt+7
,也产生了一颗子弹,但没有哔声。但是看起来像 ^G
的 Alt+007
确实发出了哔哔声。去图吧。
我想说的是忽略当您尝试输入控制字符时发生的不一致,因为这样做涉及很多软件,这些软件超出您的控制范围并且显然以神秘的方式工作。 (我知道,不是答案。)
我有一个解决方法建议。将其放入您的脚本中:
forfiles /p "%~dp0" /m "%~nx0" /c "cmd /c echo 0x07"
对于脚本目录中与脚本文件名匹配的每个文件(例如 1 次),它将回显 ASCII 字符 7,并发出噪音。来自 forfiles /?
文档:
To include special characters in the command line, use the hexadecimal code for the character in 0xHH format (ex. 0x09 for tab). Internal CMD.exe commands should be preceded with "cmd /c".
forfiles
是一个方便的实用程序,可在您需要不可打印或扩展字符时滥用。
至于我推测为什么Alt+00 7 没有按预期运行,我相信控制台在与窗口应用程序不同的代码页上工作(console = 437,windowed = 1252 for en-US,IIRC)。我也一直在努力解决这个问题 for reasons,最终在 JavaScript 项目中对用于控制台字符 1 到 31 的符号进行硬编码。
在 cmd 文件中发出提示音:
解决方案 1
C:\>rundll32 user32.dll,MessageBeep -1
解决方案 2
C:\>echo ^G>beep.txt
C:\>type beep.txt
注意:
^G是按Ctrl+G得到的,编辑beep.txt
可以看到字符
ASCII字符编码0x07为蜂鸣字符
打开 CMD 并单击 ALT + 007 产生:
当我点击 ENTER - 我听到哔声。这很好。
我搜索了如何在批处理文件的末尾添加蜂鸣声,我发现这是解决方案:(我将其粘贴为图像,因为 SO 之后不显示圆形项目符号编辑):
这确实有效,而且确实能发出声音。在 ECHO
上用 HEX 查看器(beyond compare)检查时,圆子弹是:
但是如果我手动将 ALT+7 添加到文档中,我会看到:
这是十六进制的 95 - 而不是哔哔声。此外,我转到工作批处理文件并添加了一个新行 ALT+7 :
但通过十六进制查看器查看:
问题:
我有点困惑。单击 Alt+65 会在所有地方产生 A
。
那么为什么保存在 Windows GUI 中时蜂鸣声不同并且不起作用?
在控制台中,如果我单击 ALT+007
,我会得到 ^G
(它会发出哔哔声),但是当我单击 ALT+7
时,我会得到一个圆圈,这不是哔哔声:
这两个都是:
通过记事本++的另一个有趣观察:
我认为是编码等方面的问题,不明白其中的不一致
这不是一个真正的答案,但对于评论来说太大了。
"manually adding ALT+7 to the document" 部分产生了不应该产生的奇怪结果。结果应该是单个 0x07 字符。可能是您的编辑器在您按下 ALT+7 时做了一些有趣的事情。
这种故障排除的问题是您使用的工具具有扭曲实验的复杂行为。这些工具也有奇怪的模式和奇怪的状态。例如,您的控制台子系统的编码是什么?
我试过这个:copy con x.bat
输入 echo
,然后输入 Alt+7
,然后输入 Ctrl+Z
,得到了一个批处理文件。这个角色看起来像一颗子弹。
然后我尝试使用 Alt+007
,我也收到了一个哔哔声批处理文件,但字符现在是 ^G
。
在C:\>
提示符下,我输入了echo
,然后输入了Alt+7
,也产生了一颗子弹,但没有哔声。但是看起来像 ^G
的 Alt+007
确实发出了哔哔声。去图吧。
我想说的是忽略当您尝试输入控制字符时发生的不一致,因为这样做涉及很多软件,这些软件超出您的控制范围并且显然以神秘的方式工作。 (我知道,不是答案。)
我有一个解决方法建议。将其放入您的脚本中:
forfiles /p "%~dp0" /m "%~nx0" /c "cmd /c echo 0x07"
对于脚本目录中与脚本文件名匹配的每个文件(例如 1 次),它将回显 ASCII 字符 7,并发出噪音。来自 forfiles /?
文档:
To include special characters in the command line, use the hexadecimal code for the character in 0xHH format (ex. 0x09 for tab). Internal CMD.exe commands should be preceded with "cmd /c".
forfiles
是一个方便的实用程序,可在您需要不可打印或扩展字符时滥用。
至于我推测为什么Alt+00 7 没有按预期运行,我相信控制台在与窗口应用程序不同的代码页上工作(console = 437,windowed = 1252 for en-US,IIRC)。我也一直在努力解决这个问题 for reasons,最终在 JavaScript 项目中对用于控制台字符 1 到 31 的符号进行硬编码。
在 cmd 文件中发出提示音:
解决方案 1
C:\>rundll32 user32.dll,MessageBeep -1
解决方案 2
C:\>echo ^G>beep.txt
C:\>type beep.txt
注意: ^G是按Ctrl+G得到的,编辑beep.txt
可以看到字符