Como solicitar a entrada do usuário no PowerShell

  1. Use o Read-Host para Solicitar Entrada do Usuário no PowerShell
  2. Use os Parâmetros Mandatory para Solicitar Entrada do Usuário no PowerShell
  3. Use o PromptForChoice para Solicitar Entrada do Usuário no PowerShell
  4. Conclusão
Como solicitar a entrada do usuário no PowerShell

Na programação PowerShell, interagir com usuários para coletar entradas é um requisito comum. Seja para personalização, tomada de decisões ou navegação, solicitar entradas dos usuários é essencial.

Este artigo explora vários métodos de solicitação de entrada do usuário no PowerShell, incluindo o método Read-Host, o método do parâmetro Mandatory e o método PromptForChoice. Cada método oferece capacidades únicas e é adequado para diferentes cenários, aprimorando a interatividade e a usabilidade dos scripts PowerShell.

Use o Read-Host para Solicitar Entrada do Usuário no PowerShell

O cmdlet Read-Host solicita a entrada do usuário e lê uma linha de entrada do console. O Read-Host pode aceitar apenas 1022 caracteres como entrada de um usuário.

O parâmetro -Prompt é usado para especificar um texto que fornece informações sobre o que deve ser inserido. Ele adiciona um dois-pontos : ao texto que você insere.

Exemplo:

Read-Host -Prompt "Enter your name"

Neste exemplo, quando utilizamos o Read-Host, ele solicita ao usuário a mensagem "Digite seu nome" e, em seguida, pausa a execução do script, aguardando a entrada. Depois que o usuário insere seu nome e pressiona Enter, o script continua a execução.

No entanto, como não estamos capturando ou armazenando a entrada em uma variável nem realizando quaisquer ações subsequentes com base na entrada recebida, este exemplo demonstra principalmente a funcionalidade básica do Read-Host sem processamento adicional da entrada do usuário.

Saída:

solicitar entrada do usuário no powershell - saída 1

O Read-Host pausa a execução e recebe a entrada. Quando um usuário insere o valor no prompt, ele retorna o mesmo valor.

Ele não aceita entrada do pipeline do PowerShell. Aqui está outro exemplo:

$name = Read-Host "Enter your name"
Write-Output "Hello, $name!"

Neste exemplo, usamos o Read-Host para solicitar ao usuário que insira seu nome. A string "Digite seu nome" serve como a mensagem de prompt.

A entrada do usuário é armazenada na variável $name. Em seguida, usamos Write-Output para exibir uma mensagem de saudação personalizada, incorporando o valor inserido pelo usuário.

Com o cmdlet Read-Host, podemos salvar a entrada como uma string segura, tornando-o uma ferramenta inestimável para coletar informações sensíveis, como senhas. Este cmdlet nos permite solicitar aos usuários dados seguros, garantindo a confidencialidade e a segurança.

Saída:

solicitar entrada do usuário no powershell - saída 2

O parâmetro -AsSecureString exibe asteriscos * no lugar dos caracteres que o usuário insere como entrada. Com este parâmetro, a saída do Read-Host é um objeto System.Security.SecureString.

Read-Host "Enter password" -AsSecureString

Neste exemplo, usamos o Read-Host com o parâmetro -AsSecureString para solicitar ao usuário que insira uma senha de forma segura. A mensagem de prompt "Digite a senha" é exibida ao usuário.

Quando o usuário insere a senha, ela é mascarada na tela, garantindo a confidencialidade. A senha é então armazenada como uma string segura na variável `$password$, pronta para processamento ou validação posterior.

Saída:

solicitar entrada do usuário no powershell - saída 3

Use os Parâmetros Mandatory para Solicitar Entrada do Usuário no PowerShell

No PowerShell, o método do parâmetro Mandatory é uma maneira poderosa de solicitar entradas dos usuários, garantindo que certos parâmetros sejam necessários para a execução do script. Ao marcar parâmetros como Mandatory, os autores de scripts podem impor a fornecimento de valores de entrada essenciais, melhorando a confiabilidade e a usabilidade do script.

Aqui está um exemplo da função Name que solicita a entrada do usuário quando é executada.

Exemplo:

function Name {
    param(
        [Parameter(Mandatory)]
        [string]$name
    )
    Write-Output "Your name is $name."
}
Name

Neste exemplo, definimos uma função PowerShell chamada Name com um único parâmetro chamado name. Ao especificar [Parameter(Mandatory)], garantimos que o usuário deve fornecer um valor para o parâmetro name ao invocar a função.

A função então exibe uma mensagem incorporando o nome fornecido usando Write-Output.

Saída:

promptar entrada do usuário no powershell - saída 4

Use o PromptForChoice para Solicitar Entrada do Usuário no PowerShell

No PowerShell, o método PromptForChoice fornece uma maneira estruturada de solicitar aos usuários um conjunto de opções e receber sua escolha como entrada. Este método é particularmente útil ao apresentar aos usuários um menu ou lista de opções, permitindo uma experiência de execução de script mais interativa e amigável.

Exemplo:

$choicePrompt = "Choose an option:"
$choices = [System.Management.Automation.Host.ChoiceDescription[]]@(
    "&Option 1",
    "&Option 2",
    "&Option 3"
)
$defaultChoice = 0
$result = $host.UI.PromptForChoice("Title", $choicePrompt, $choices, $defaultChoice)
Write-Output "You selected $($choices[$result].Label)"

Neste exemplo, definimos uma mensagem de prompt e um array de opções e especificamos o índice da escolha padrão. Em seguida, usamos o método PromptForChoice para exibir a caixa de diálogo de prompt com as opções fornecidas.

A seleção do usuário é armazenada na variável $result, que usamos para recuperar o rótulo da opção escolhida e exibi-lo para o usuário.

Saída:

solicitar entrada do usuário no powershell - saída 5

Conclusão

Solicitar entrada do usuário no PowerShell é crucial para criar scripts interativos e amigáveis. Ao utilizar métodos como Read-Host, parâmetros Mandatory e PromptForChoice, os autores de scripts podem coletar eficientemente a entrada do usuário, garantindo confiabilidade e segurança.

Seja coletando entradas de texto simples, impondo parâmetros obrigatórios ou apresentando aos usuários um conjunto estruturado de escolhas, esses métodos capacitam os autores de scripts a criar soluções de automação robustas e versáteis. Ao entender e aproveitar essas técnicas, os autores de scripts PowerShell podem melhorar a usabilidade e a eficácia de seus scripts, atendendo às diversas necessidades de usuários e administradores.

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