![禁用退格键上的 PowerShell 蜂鸣声](https://linux22.com/image/1503455/%E7%A6%81%E7%94%A8%E9%80%80%E6%A0%BC%E9%94%AE%E4%B8%8A%E7%9A%84%20PowerShell%20%E8%9C%82%E9%B8%A3%E5%A3%B0.png)
此功能似乎已在 PowerShell 版本 5.1 中添加,因为我在仍运行 5.0 的笔记本电脑上找不到它。
按下BackspacePowerShell 时,如果没有(更多)文本要删除,它会发出“哔”声。如果您不小心按住该键太久,这会非常烦人,因为在您松开它后,声音会持续一小段时间。
我发现这超级用户问题建议禁用 Beep 服务,这确实有效,但我希望仍然能够在脚本中使用蜂鸣声。
如何在不完全禁用蜂鸣声的情况下禁用“退格键蜂鸣”声音?
答案1
蜂鸣声由 Windows 10 附带的模块提供。PSReadline
您需要更改选项PSReadline
以禁用铃声:
Set-PSReadlineOption -BellStyle None
如果您希望将来的所有 PowerShell 会话都进行此更改,则需要将此命令添加到您的PowerShell 配置文件。例如,设置“当前用户、当前主机”选项($Profile
):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
if (!(Test-Path -Path "$Profile")) {New-Item -ItemType File -Path "$Profile" -Force}
Add-Content -Value "Set-PSReadlineOption -BellStyle None" -Path "$Profile"
第一行允许您的配置文件在 PowerShell 打开时运行启动脚本(关于执行策略)。第二行测试您是否已经为“当前用户,当前主机”定义了启动脚本。第三行将铃声选项添加到启动脚本中。
答案2
更持久的解决方案,可以延长@PetSerAl的回答:
- 以管理员身份运行 PowerShell。
- 执行:
set-executionpolicy remotesigned
。这将允许 PowerShell 脚本在您的计算机上运行。如果您不确定那是什么,请不要继续。 C:\Windows\System32\WindowsPowerShell\v1.0
如果您使用的是 Windows 10,请转到。- 创建一个名为 的文件
Microsoft.PowerShell_profile.ps1
。 - 编辑该文件并添加
Set-PSReadlineOption -BellStyle None
。 - 打开一个新的 PowerShell 控制台,您应该不会再听到哔声。
您计算机上所有用户的所有(新)PowerShell 控制台现在都处于静默状态。
此答案适用于 Windows 10。对于其他版本的 Windows,文件夹可能会有所不同。
答案3
使用适用于 Linux 的 Windows 子系统上的 Bash shell 对@Odys 的答案进行改编(假设您已启用它)。
1 以管理员身份打开命令提示符,然后运行
set-executionpolicy remotesigned
2 输入bash
以启动 bash shell
3 更改到正确的目录
cd /mnt/c/Windows/System32/WindowsPowerShell/v1.0
4 创建一个名为“Microsoft.Powershell_profile.ps1”的文件,并将“Set-PSReadlineOption -BellStyle None”写入其中
echo "Set-PSReadlineOption -BellStyle None" >> Microsoft.Powershell_profile.ps1