91 votes

Désactiver le bip de PowerShell sur les retours en arrière

Cette fonctionnalité semble avoir été ajoutée dans la version 5.1 de PowerShell, car je ne la trouve pas sur mon ordinateur portable qui fonctionne encore en 5.0.

Lorsque vous appuyez sur Backspace dans PowerShell, il émettra un 'bip' sonore s'il n'y a pas (plus) de texte à supprimer. C'est assez ennuyeux si vous maintenez accidentellement la touche enfoncée trop longtemps, car le son continue pendant un court moment après que vous l'ayez relâchée.

J'ai trouvé este Question de super utilisateur qui suggère de désactiver le service Beep, ce qui fonctionne, mais je voudrais pouvoir continuer à utiliser les beeps dans les scripts.

Comment désactiver le son "bip sur le retour arrière" sans désactiver complètement les bips ?

130voto

Tomas M Points 151

Le signal sonore est fourni par le PSReadline qui est livré avec Windows 10. Vous devez modifier le PSReadline pour désactiver la sonnerie :

Set-PSReadlineOption -BellStyle None

Si vous souhaitez que ce changement s'applique à toutes les futures sessions PowerShell, vous devez ajouter cette commande à votre fichier Profil PowerShell . Par exemple, pour définir l'option "Utilisateur actuel, hôte actuel" ( $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"

La première ligne permet à votre profil d'exécuter un script de démarrage lorsque PowerShell s'ouvre ( À propos des politiques d'exécution ). La deuxième ligne teste pour voir si vous avez déjà un script de démarrage défini pour "Current User, Current Host". La troisième ligne ajoute l'option bell à votre script de démarrage.

20voto

DavidEG Points 159

Une solution plus permanente qui prolonge @PetSerAl La réponse de la Commission :

  1. Exécutez PowerShell en tant qu'administrateur.
  2. Exécuter : set-executionpolicy remotesigned . Cela permettra aux scripts PowerShell de s'exécuter sur votre ordinateur. Si vous n'êtes pas sûr de ce que c'est, ne continuez pas.
  3. Ir a C:\Windows\System32\WindowsPowerShell\v1.0 si vous êtes sous Windows 10.
  4. Créez un fichier nommé Microsoft.PowerShell_profile.ps1 .
  5. Modifiez ce fichier et ajoutez Set-PSReadlineOption -BellStyle None .
  6. Ouvrez une nouvelle console PowerShell et vous ne devriez plus entendre le bip.

Toutes les (nouvelles) consoles PowerShell de tous les utilisateurs de votre ordinateur sont désormais silencieuses.

Cette réponse concerne Windows 10.  Pour les autres versions de Windows, le dossier peut être différent.

1voto

Craig Points 410

J'ai déposé cet élément Github contre PsReadLine, car je ne suis pas sûr que cette modification était intentionnelle - https://github.com/lzybkr/PSReadLine/issues/422

0voto

Evan Rosica Points 109

Une adaptation de la réponse de @Odys utilisant le Shell de Bash sur le sous-système Windows pour Linux (en supposant que vous l'ayez activé).

1 Ouvrez une invite de commande en tant qu'administrateur, et exécutez

set-executionpolicy remotesigned

2 Type bash pour démarrer le Shell de bash

3 Passez au répertoire approprié

cd /mnt/c/Windows/System32/WindowsPowerShell/v1.0 

4 Créez un fichier nommé "Microsoft.Powershell_profile.ps1" et écrivez-y "Set-PSReadlineOption -BellStyle None".

echo "Set-PSReadlineOption -BellStyle None" >> Microsoft.Powershell_profile.ps1

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X