禁用退格键上的 PowerShell 蜂鸣声

禁用退格键上的 PowerShell 蜂鸣声

此功能似乎已在 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的回答:

  1. 以管理员身份运行 PowerShell。
  2. 执行:set-executionpolicy remotesigned。这将允许 PowerShell 脚本在您的计算机上运行。如果您不确定那是什么,请不要继续。
  3. C:\Windows\System32\WindowsPowerShell\v1.0如果您使用的是 Windows 10,请转到。
  4. 创建一个名为 的文件Microsoft.PowerShell_profile.ps1
  5. 编辑该文件并添加Set-PSReadlineOption -BellStyle None
  6. 打开一个新的 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

相关内容