バックスペースでPowerShellビープを無効にする


82

この機能は、PowerShellバージョン5.1で追加されたようですが、まだ5.0を実行しているラップトップでは見つかりません。

BackspacePowerShellを押すと、削除するテキストが(さらに)ない場合、「ビープ」音が鳴ります。誤ってキーを長く押し続けると、キーを放した後しばらくの間音が鳴り続けるため、これは非常に面倒です。

私が見つかりました。この作業を行うビープサービスを、無効にすることを提案スーパーユーザーの質問に、私はまだスクリプトでビープ音を使用できるようにしたいと思います。

ビープ音を完全に無効にせずに「バックスペースのビープ音」音を無効にするにはどうすればよいですか?


7
Set-PSReadlineOption -BellStyle None
user364455

1
@PetSerAl動作しますが、新しいPowerShellウィンドウを開くたびに設定する必要があります。設定を固定する方法はありますか?
FastEthernet



1
@PetSerAl回答を投稿してください。
FastEthernet

回答:


112

ビープ音はPSReadline、Windows 10に付属のモジュールによって提供されます。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行目は、「現在のユーザー、現在のホスト」用に定義された起動スクリプトが既にあるかどうかをテストします。3行目は、起動スクリプトにベルオプションを追加します。


5
@Odysいいえ-これは、Bash / ZSHまたは他のUnixシェルでも実行する必要があるのと同じ方法です。
タモニアチョードリー

21

@PetSerAlの答えを拡張するより恒久的なソリューション:

  1. PowerShellを管理者として実行します。
  2. 実行:set-executionpolicy remotesigned。これにより、コンピューターでPowerShellスクリプトを実行できます。何がわからない場合は続行しないでください。
  3. C:\Windows\System32\WindowsPowerShell\v1.0Windows 10を使用している場合に移動します。
  4. という名前のファイルを作成しますMicrosoft.PowerShell_profile.ps1
  5. そのファイルを編集して追加しSet-PSReadlineOption -BellStyle Noneます。
  6. 新しいPowerShellコンソールを開くと、ビープ音が聞こえなくなります。

コンピューター上のすべてのユーザー向けのすべての(新しい)PowerShellコンソールはサイレントになりました。

この回答はWindows 10用です。他のバージョンのWindowsでは、フォルダーが異なる場合があります。


Set-ExecutionPolicy昇格されたアクセス許可が必要な場合があるため、自分のユーザーのみに対してこの設定を変更する場合は、-Scope CurrentUser引数とともに使用できます。
mehmetseckin

1

この変更が意図的なものであるかどうか不明なため、PsReadLineに対してこのGithubアイテムを提出しました-https ://github.com/lzybkr/PSReadLine/issues/422


2
これは質問に対する回答を提供するものではなく、コメントとして投稿されるべきでした。非回答は削除の対象となります。
Gマン

1

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

指定したパスの下にファイルを追加することはできませんが、フォルダーへのアクセス権に書き込みが含まれていないため、驚くことではありません。アクセス権を変更しようとしましたが、うまくいきませんでした。このような問題に直面しましたか?
lulijeta

sudo chmod 644 ./Microsoft.Powershell_profile.ps1自分に特権を与えようとします。ルートパスワードを覚えていないので、この動作を確認できません。
エヴァンロシカ

ありがとうございますが、chmodはファイルが存在する場合にのみファイルのアクセス許可を変更しようとすることができます。私の問題は、フォルダーv1.0の下にMicrosoft.Powershell_profile.ps1を作成できないことです。v1.0(フォルダー)には書き込み権限がないため、そのフォルダーの下にファイルを作成できません。v1.0のアクセス権を変更しようとしましたが、明らかにchmodにはサブシステムにいくつかの問題があります。v1.0でファイルをどのように作成しましたか?
lulijeta
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.