这是一个新的挑战,我想让 Windows 10 命令提示符或 PowerShell 窗口播放一个非常短的“滴答”声,就像电影里那样,每次在命令窗口上打印一个新行时,无论是直接在命令中还是在比如说 >>> python 环境中,我希望它滴答作响,每次打印一个新行时,无论在 cmd 内运行什么应用程序。
最棒的是,您可以在 Linux 终端中轻松完成此操作。您知道如何在 Widnows 10 上执行此操作吗?
谢谢大家
答案1
在 PS 中播放声音就是这样简单......
# this
"`a"
# or this basic tone
[console]::beep(1000, 500)
更改第一个数字的值来改变音调(低于 190 或高于 8500 的任何值都听不到),更改第二个数字的值来改变持续时间:
# Or this
[System.Media.SystemSounds]::Beep.Play()
然后将其绑定到您的输出代码。对于 PS 中的外部 exe,您必须使用 PS 重定向编写代码来从中检索输出。
使用您选择的任何工具来创建您想要播放的声音。当然,这必须在您计划运行代码的所有系统上进行。
1..3 | %{
'Play a sound'
[console]::beep(1000, 500)
}
OP 更新
不用担心。
至于 (1) - 您只需要在预期的文本输出之前或之后添加声音行,如所示的循环示例所示。
至于 (2),它远没有那么灵活。您只能在 .bat/.cmd 文件中使用 CRTL+G,并在预期的输出行之前或之后调用它。
但是,您还是需要编写代码来捕获所有需要的输出。播放 wav 文件意味着在您的代码中调用媒体播放器,尤其是针对 cmd.exe。
# PowerShell playing a wav file
$PlayWav=New-Object System.Media.SoundPlayer
$PlayWav.SoundLocation='C:\Foo\Soundfile.wav'
$PlayWav.playsync()
# CMD playing a wav file
start 'C:\Foo\Soundfile.wav'
这是播放 .wav 文件或任何正常控制台蜂鸣声之外的内容的真正问题,每次都会调用媒体播放器,并且必须显示播放文件,然后必须将其关闭。这不是一个非常自动化的事情。
因此,恕我直言,对于您所追求的,请坚持使用本机控制台声音。