Desativar o bipe do PowerShell no backspace

68

Este recurso parece ter sido adicionado na versão 5.1 do PowerShell, já que não o encontro no meu laptop ainda executando o 5.0.

Ao pressionar Backspace no PowerShell, ele emitirá um som de 'bip' se não houver texto (mais) a ser excluído. Isso é muito chato se você acidentalmente segurar a tecla por muito tempo, já que o som vai continuar por um curto período de tempo após você soltar a tecla.

Eu encontrei esta pergunta de super usuário que sugere desativar o serviço Beep, que funciona, mas eu ainda gostaria de poder usar bips em scripts.

Como faço para desativar o som "beep on backspace" sem desativar completamente os bips?

    
por FastEthernet 14.08.2016 / 15:55

4 respostas

91

O sinal sonoro é fornecido pelo módulo PSReadline , fornecido com o Windows 10. Você precisa alterar a opção PSReadline para desativar a campainha:

Set-PSReadlineOption -BellStyle None

Se você quiser essa alteração para todas as futuras sessões do PowerShell, será necessário adicionar esse comando ao seu perfil do PowerShell . Por exemplo, para definir a opção "Usuário atual, host atual" ( $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"

A primeira linha permite que seu perfil execute um script de inicialização quando o PowerShell é aberto ( Sobre as políticas de execução . A segunda linha testa para ver se você já tem um script de inicialização definido para "Usuário atual, host atual". A terceira linha adiciona a opção de sino ao seu script de inicialização.

    
por 14.08.2016 / 17:11
17

Uma solução mais permanente que amplia a resposta do @PetSerAl :

  1. Execute o PowerShell como administrador.
  2. Executar: set-executionpolicy remotesigned . Isso permitirá que os scripts do PowerShell sejam executados no seu computador. Se você não tem certeza do que é isso, não continue.
  3. Acesse C:\Windows\System32\WindowsPowerShell\v1.0 se você estiver no Windows 10.
  4. Crie um arquivo chamado Microsoft.PowerShell_profile.ps1 .
  5. Edite esse arquivo e adicione Set-PSReadlineOption -BellStyle None .
  6. Abra um novo console do PowerShell e você não ouvirá mais o bipe.

Todos os consoles do PowerShell (novos) para todos os usuários no seu computador estão em silêncio.

Esta resposta é para o Windows 10. Para outras versões do Windows, a pasta pode ser diferente.

    
por 18.02.2017 / 21:04
2

Arquivei este item do Github contra o PsReadLine, pois não tenho certeza se essa alteração foi intencional - link

    
por 16.08.2016 / 21:34
1

Uma adaptação da resposta do @Odys usando o shell Bash no Windows Subsystem para Linux (supondo que você tenha ativado).

1 Abra um prompt de comando como administrador e execute

set-executionpolicy remotesigned

2 Digite bash para iniciar o shell bash

3 Mude para o diretório adequado

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

4 Crie um arquivo chamado "Microsoft.Powershell_profile.ps1" e escreva "Set-PSReadlineOption -BellStyle None" para ele

echo "Set-PSReadlineOption -BellStyle None" >> Microsoft.Powershell_profile.ps1
    
por 03.11.2017 / 00:04

Tags