我正在运行一个长时间的自定义Node.js脚本,希望在脚本完成时得到通知。
如何让Node.js触发“系统哔声”?
我正在运行一个长时间的自定义Node.js脚本,希望在脚本完成时得到通知。
如何让Node.js触发“系统哔声”?
将BELL字符(Unicode 0007)输出到标准输出。
console.log('\u0007');
2023年更新
上面的解决方案不再适用,但直接写入标准输出仍然有效(在Node.js v14.20上测试通过):
process.stdout.write('\u0007');
参考资料
在Windows 10上,我使用VSCode运行时无法使用console.log('\u0007')。但是以下代码可行:
import { exec } from 'child_process'
exec(`rundll32 user32.dll,MessageBeep`)
console.log
的版本对我起作用,但在使用代码构建电子应用程序后它并未生效。您的解决方案也适用于 Windows 10 上的电子应用程序。 - messerbill>
将控制台输出重定向到文件。 - benbai123我知道这个问题标记为Unix,但我是从谷歌上找到的,所以这里提供一个Windows PowerShell解决方案。
当前的答案在Windows中运行良好,但我需要比标准Windows音调更独特的东西,所以这对我的需求更好:
const { exec } = require('child_process');
// Single beep
exec("[console]::beep(1000, 500)", {'shell':'powershell.exe'});
// Multiple beeps
exec("1..3 | %{ [console]::beep(1000, 500) }", {'shell':'powershell.exe'});
console.log('\u0007');
。 - wulong