Como pressionar qualquer tecla para continuar no PowerShell
-
Use
ReadKey (System.Console)
para Habilitar opressione qualquer tecla para continuar
no PowerShell -
Use
ReadKey (Console)
para Habilitar opressione qualquer tecla para continuar
no PowerShell -
Use
ReadKey (RawUI)
para Habilitar opressione qualquer tecla para continuar
no PowerShell -
Use
Read-Host
para Habilitar opressione qualquer tecla para continuar
no PowerShell -
Use o comando
cmd /c 'pause'
para Habilitar opressione qualquer tecla para continuar
no PowerShell -
Use
timeout
para Habilitar opressione qualquer tecla para continuar
no 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.