Como pressionar qualquer tecla para continuar no PowerShell

  1. Use ReadKey (System.Console) para Habilitar o pressione qualquer tecla para continuar no PowerShell
  2. Use ReadKey (Console) para Habilitar o pressione qualquer tecla para continuar no PowerShell
  3. Use ReadKey (RawUI) para Habilitar o pressione qualquer tecla para continuar no PowerShell
  4. Use Read-Host para Habilitar o pressione qualquer tecla para continuar no PowerShell
  5. Use o comando cmd /c 'pause' para Habilitar o pressione qualquer tecla para continuar no PowerShell
  6. Use timeout para Habilitar o pressione qualquer tecla para continuar no PowerShell
  7. Conclusão
Como pressionar qualquer tecla para continuar no PowerShell

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:

pressione qualquer tecla para continuar - saída 1

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:

powershell pressione qualquer tecla para continuar - saída 2

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:

powershell pressione qualquer tecla para continuar - saída 3

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:

pressione qualquer tecla para continuar - saída 4

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:

powershell pressione qualquer tecla para continuar - saída 5

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:

powershell pressione qualquer tecla para continuar - saída 6

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:

powershell pressione qualquer tecla para continuar - saída 7

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.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website