Como pressionar qualquer tecla para continuar no PowerShell
- 
          
            Use ReadKey (System.Console)para Habilitar opressione qualquer tecla para continuarno PowerShell
- 
          
            Use ReadKey (Console)para Habilitar opressione qualquer tecla para continuarno PowerShell
- 
          
            Use ReadKey (RawUI)para Habilitar opressione qualquer tecla para continuarno PowerShell
- 
          
            Use Read-Hostpara Habilitar opressione qualquer tecla para continuarno PowerShell
- 
          
            Use o comando cmd /c 'pause'para Habilitar opressione qualquer tecla para continuarno PowerShell
- 
          
            Use timeoutpara Habilitar opressione qualquer tecla para continuarno PowerShell
- Conclusão
 
No PowerShell, habilitar a funcionalidade pressione qualquer tecla para continuar é uma exigência comum, especialmente ao criar aplicativos interativos de linha de comando ou fornecer feedback aos usuários. Vários métodos existem para alcançar essa funcionalidade, cada um com suas próprias vantagens e casos de uso.
Este artigo explora vários métodos para implementar o recurso pressione qualquer tecla para continuar em scripts do PowerShell, variando de cmdlets integrados a comandos externos e objetos COM.
Use ReadKey (System.Console) para Habilitar o pressione qualquer tecla para continuar no PowerShell
O método [System.Console]::ReadKey() no PowerShell é usado para ler a próxima tecla ou tecla de função pressionada pelo usuário a partir do fluxo de entrada padrão (normalmente o teclado). Quando chamado sem argumentos, esse método aguarda o usuário pressionar uma tecla e retorna um objeto do tipo [System.ConsoleKeyInfo], que representa a tecla pressionada.
O System.Console ReadKey pode ser executado conforme mostrado abaixo. Ele aceita qualquer tecla, exceto Shift, Alt, Ctrl e outras teclas modificadoras.
$keyInfo = [System.Console]::ReadKey($true)
Write-Host "Key Pressed: $($keyInfo.KeyChar)"
Na linha de código $keyInfo = [System.Console]::ReadKey($true), estamos utilizando o método [System.Console]::ReadKey() para capturar a entrada do usuário. Ao passar $true como argumento, indicamos que a tecla pressionada não deve ser exibida na janela do console.
Isso evita que o console fique poluído com caracteres desnecessários, proporcionando uma experiência do usuário mais limpa. Para exibir a saída de $keyInfo, podemos acessar suas propriedades usando a notação de ponto.
Saída:

Use ReadKey (Console) para Habilitar o pressione qualquer tecla para continuar no PowerShell
Você pode usar o [Console]::ReadKey() para habilitar o pressione qualquer tecla para continuar no PowerShell. Ele pode ler teclas e modificadores enquanto pausa a execução. Ele exclui Shift, Alt, Ctrl e outras teclas modificadoras.
$keyInfo = [Console]::ReadKey()
Na linha $keyInfo = [Console]::ReadKey(), utilizamos o método [Console]::ReadKey() para capturar a entrada do usuário. Esse método aguarda o usuário pressionar uma tecla e retorna um objeto representando a tecla pressionada, armazenando-o na variável $keyInfo.
Saída:

Use ReadKey (RawUI) para Habilitar o pressione qualquer tecla para continuar no PowerShell
O método $Host.UI.RawUI.ReadKey() no PowerShell é usado para ler a próxima tecla ou tecla de função pressionada pelo usuário a partir da entrada do console. Quando chamado, esse método aguarda o usuário pressionar uma tecla e retorna um objeto representando a tecla pressionada.
Esse objeto contém propriedades como Character, que representa o caractere Unicode da tecla pressionada, e KeyDown, que indica se a tecla foi pressionada.
Esse método é semelhante ao [Console]::ReadKey(). Ele aceita qualquer tecla, incluindo Ctrl, Shift, Alt e outras teclas modificadoras.
Existem diferentes ReadKeyOptions que podem ser passados no método RawUI ReadKey, como IncludeKeyDown, IncludeKeyUp, NoEcho e AllowCtrlC.
Exemplo:
$keyInfo = $Host.UI.RawUI.ReadKey()
Nesse exemplo, usamos $Host.UI.RawUI.ReadKey() para capturar a tecla pressionada pelo usuário e armazená-la na variável $keyInfo. Esse método aguarda o usuário pressionar uma tecla e retorna um objeto representando a tecla pressionada.
O objeto $keyInfo contém propriedades como Character (representando o caractere da tecla pressionada) e KeyDown (indicando se a tecla foi pressionada).
Saída:

Use Read-Host para Habilitar o pressione qualquer tecla para continuar no PowerShell
O cmdlet Read-Host no PowerShell é uma ferramenta versátil usada para capturar a entrada do usuário a partir da janela do console. Seu principal objetivo é exibir uma mensagem de prompt para o usuário e aguardar que ele insira um valor, que é então armazenado em uma variável para processamento posterior dentro do script.
Exemplo:
Read-Host -Prompt "Press any key to continue"
Nesse exemplo, usamos Read-Host com o parâmetro -Prompt para exibir a mensagem "Pressione qualquer tecla para continuar..." ao usuário. O script pausa a execução nesse ponto, aguardando que o usuário insira qualquer texto seguido pela tecla Enter.
Embora não seja exatamente pressione qualquer tecla, esse método alcança um resultado semelhante ao exigir entrada do usuário antes de prosseguir.
Saída:

Use o comando cmd /c 'pause' para Habilitar o pressione qualquer tecla para continuar no PowerShell
Na script de PowerShell, o método cmd /c 'pause' fornece uma maneira simples de pausar a execução do script e aguardar o reconhecimento do usuário antes de prosseguir. Esse método aproveita o comando cmd para executar o comando pause a partir do Prompt de Comando dentro de um script PowerShell.
Quando executado, o comando pause exibe a mensagem "Pressione qualquer tecla para continuar . . ." e aguarda que o usuário pressione qualquer tecla antes de permitir que o script continue a execução.
Exemplo:
cmd /c pause
Nesse exemplo, usamos o comando cmd /c 'pause' para pausar a execução do script e aguardar a entrada do usuário. Quando executado, a janela do Prompt de Comando exibe a mensagem "Pressione qualquer tecla para continuar . . ." e aguarda que o usuário pressione qualquer tecla antes de permitir que o script continue.
Saída:

Use timeout para Habilitar o pressione qualquer tecla para continuar no PowerShell
O comando timeout pode pausar a execução por um período específico de tempo ou tempo infinito. Você pode usar a opção /t para especificar o tempo em segundos.
O valor válido do tempo especificado varia de -1 a 99999.
Exemplo:
timeout /t 5
Nesse exemplo, usamos o comando timeout para pausar a execução do script por 5 segundos. Isso efetivamente cria um prompt para que o usuário aguarde 5 segundos antes de prosseguir.
Saída:

O valor -1 é usado para pausar a execução por um período infinito se uma tecla não for pressionada.
timeout /t -1
Saída:

Conclusão
Implementar o recurso pressione qualquer tecla para continuar em scripts do PowerShell é essencial para criar aplicativos interativos e amigáveis de linha de comando. Ao utilizar métodos como [System.Console]::ReadKey(), [Console]::ReadKey(), Read-Host, cmd /c 'pause', timeout e WScript.Shell Popup, os autores de scripts podem fornecer aos usuários prompts claros e pausar a execução até o reconhecimento do usuário.
Cada método oferece capacidades únicas e pode ser adaptado para atender a requisitos específicos, garantindo uma experiência do usuário sem interrupções e uma interatividade aprimorada do script. Seja exibindo mensagens informativas, confirmando ações ou criando utilitários interativos, o PowerShell oferece ferramentas versáteis para atender a diversas necessidades de script.
