私はまだ5.0を実行している私のラップトップでそれを見つけることができないので、この機能はPowerShellバージョン5.1で追加されたようです。
押すとき Backspace PowerShellでは、削除するテキストがない場合は「ビープ音」が鳴ります。放してからしばらくの間サウンドが鳴り続けるので、誤ってキーを押したままにし過ぎると、これはかなり面倒です。
this スーパーユーザーの質問で、Beepサービスを無効にすることを提案していますが、スクリプトでビープ音を使用できるようにしたいと思います。
ビープ音を完全に無効にせずに「バックスペースのビープ音」を無効にするにはどうすればよいですか?
ビープ音は、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"
1行目では、PowerShellが開いたときにプロファイルで起動スクリプトを実行できます( 実行ポリシーについて )。 2行目は、 "現在のユーザー、現在のホスト"に対して定義されている起動スクリプトが既にあるかどうかを確認するためのテストです。 3行目は起動スクリプトにベルオプションを追加します。
@ PetSerAl の回答を拡張した、より恒久的な解決策:
set-executionpolicy remotesigned
を実行してください。これにより、PowerShellスクリプトをコンピューター上で実行できます。あなたがそれが何であるかについてよくわからないならば、続けないでください。C:\Windows\System32\WindowsPowerShell\v1.0
に行きます。Microsoft.PowerShell_profile.ps1
という名前のファイルを作成します。Set-PSReadlineOption -BellStyle None
を追加してください。お使いのコンピュータ上のすべてのユーザー用のすべての(新しい)PowerShellコンソールが無音になりました。
この答えはWindows 10用です。他のバージョンのWindowsでは、フォルダーは異なる可能性があります。
Linux用のWindowsサブシステムでBashシェルを使用した@Odysの回答の修正(有効にしていると仮定して)。
1管理者としてコマンドプロンプトを開き、次のコマンドを実行します。
set-executionpolicy remotesigned
2 bashシェルを起動するbash
と入力します。
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
この変更が意図的であったかどうかわからないので、私はこのGithubアイテムをPsReadLineに対して提出しました - https://github.com/lzybkr/PSReadLine/issues/422