在退格键上禁用 PowerShell 蜂鸣声

Fas*_*net 90 powershell

此功能似乎已添加到 PowerShell 5.1 版中,因为我在仍运行 5.0 的笔记本电脑上找不到它。

Backspace在 PowerShell 中按下时,如果没有(更多)要删除的文本,它将发出“哔”声。如果您不小心按住按键太久,这会很烦人,因为在您松开按键后声音会持续一小会儿。

我发现这个超级用户问题建议禁用 Beep 服务,该服务确实有效,但我希望仍然能够在脚本中使用 Beeps。

如何在不完全禁用蜂鸣声的情况下禁用“退格提示音”声音?

use*_*455 129

哔声由PSReadline模块提供,该模块随 Windows 10 一起提供。您需要更改PSReadline选项以禁用响铃:

Set-PSReadlineOption -BellStyle None
Run Code Online (Sandbox Code Playgroud)

如果您希望在以后的所有 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"
Run Code Online (Sandbox Code Playgroud)

第一行允许您的配置文件在 PowerShell 打开时运行启动脚本(关于执行策略)。第二行测试您是否已经为“当前用户,当前主机”定义了启动脚本。第三行将 bell 选项添加到您的启动脚本中。

  • @Odys 不-这与您必须在 Bash/ZSH 或任何 Unix shell 中执行此操作的方式相同。 (5认同)

Ody*_*dys 20

一个更持久的解决方案,扩展了@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,文件夹可能会有所不同。