Como Confirmar O Prompt no PowerShell
-
Use o Switch
-Confirm
para Prompt de Confirmação no PowerShell -
Use a Declaração
if
para Prompt de Confirmação no PowerShell -
Use o Método
PromptForChoice()
para Prompt de Confirmação no PowerShell - Use Abordagens Baseadas em Funções para Prompt de Confirmação no PowerShell
- Conclusão

A ideia geral por trás do prompt de confirmação é criar uma opção para alternar entre diferentes ações. Por exemplo, quando o usuário escolhe Sim
, o script deve continuar, e quando o usuário seleciona Não
, o script deve ser encerrado.
O PowerShell pode automaticamente solicitar confirmação do usuário antes de realizar qualquer ação usando o switch -Confirm
. Este tutorial apresentará diferentes métodos para pedir confirmação dos usuários para qualquer ação prosseguir no PowerShell.
Use o Switch -Confirm
para Prompt de Confirmação no PowerShell
O PowerShell tem um conjunto de variáveis de preferência que afetam seu ambiente de operação e permitem que você personaliza seu comportamento. $ConfirmPreference
é uma das variáveis de preferência que determina se o PowerShell solicita automaticamente confirmação antes de executar um cmdlet ou função.
Isso ajuda a solicitar confirmação antes de executar cmdlets ou funções com risco baixo, médio ou alto. Como a maioria dos cmdlets e funções é de risco médio, ele não pede confirmação se o valor da variável estiver definido como Alto
.
$ConfirmPreference
Saída:
High
Você deve usar o switch -Confirm
no comando para solicitar ao usuário uma confirmação. Isso força o comando a exibir o prompt de confirmação no PowerShell.
Uma maneira mais simples de usar o switch -Confirm
seria usá-lo no cmdlet Remove-Item
, que pode produzir uma ação de confirmação em um comando mais simples. O seguinte comando mostra um exemplo de seu uso.
Comando:
Remove-Item test.txt -Confirm
Saída:
Confirm
Are you sure you want to perform this action?
Performing the operation "Remove File" on target "C:\Users\rhntm\test.txt".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): N
Na saída, o switch -Confirm
força o PowerShell a exibir um prompt de confirmação. Este método é direto e ideal para cenários onde você deseja solicitar ao usuário uma simples confirmação de 'Sim'
ou 'Não'
.
Na GUI do PowerShell, isso parecerá assim.
Use a Declaração if
para Prompt de Confirmação no PowerShell
Você também pode usar a declaração if
e fornecer as condições para continuar para os usuários. Por exemplo, o seguinte comando pergunta ao usuário se ele deseja continuar.
Comando:
$confirmation = Read-Host "Do you want to continue?"
if ($confirmation -eq 'y') {
Write-Host "Welcome to DelftStack."
}
Saída:
Do you want to continue?: y
Welcome to DelftStack.
O cmdlet Read-Host
é usado para ler a entrada de um usuário e armazenar a entrada na variável $confirmation
. A declaração if
verifica se a entrada do usuário ($confirmation
) é igual a 'y'
, e se verdadeiro, executa a ação especificada.
Essa abordagem fornece opções extras para personalizar a mensagem exibida ao usuário e o que acontece quando ele faz uma escolha.
Use o Método PromptForChoice()
para Prompt de Confirmação no PowerShell
No PowerShell, você também pode solicitar ao usuário uma confirmação usando o método PromptForChoice()
. Ele exibe um diálogo que permite ao usuário selecionar uma opção de um conjunto de opções e prosseguir com a ação de acordo com suas escolhas.
O seguinte comando é um exemplo que solicita uma entrada de Sim/Não
a um usuário. Definimos $title
, $question
e $choices
para o prompt de confirmação.
Comando:
$title = 'Confirm'
$question = 'Do you want to continue?'
$choices = '&Yes', '&No'
$decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
if ($decision -eq 0) {
Write-Host 'Your choice is Yes.'
}
else {
Write-Host 'Your choice is No.'
}
Esta linha de código $decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
apresenta uma caixa de diálogo para o usuário usando o método PromptForChoice()
. Na declaração if
, verifica se o valor armazenado na variável $decision
é igual a 0
(o índice da primeira escolha no array $choices
).
1ª Saída:
Confirm
Do you want to continue?
[Y] Yes [N] No [?] Help (default is "N"): Yes
Your choice is Yes.
Na 1ª saída, o usuário seleciona "Sim"
. Como resultado, a saída "Sua escolha é Sim."
é impressa.
2ª Saída:
Confirm
Do you want to continue?
[Y] Yes [N] No [?] Help (default is "N"): No
Your choice is No.
Na 2ª saída, o usuário seleciona "Não"
, e o segundo comando dentro dos colchetes será executado. Portanto, "Sua escolha é Não."
é impresso.
Este método oferece uma experiência de confirmação mais interativa e personalizável, tornando-a adequada para cenários complexos.
Se você executar o script acima na versão GUI do PowerShell, poderá visualizar a caixa de diálogo de confirmação.
Use Abordagens Baseadas em Funções para Prompt de Confirmação no PowerShell
Você pode criar funções personalizadas do PowerShell que incluam lógica de confirmação. Isso permite encapsular a lógica de confirmação dentro de funções e reutilizá-las em seus scripts.
Comando:
Function Confirm-Action {
param (
[string]$Message,
[scriptblock]$Action
)
$confirmation = Read-Host $Message
if ($confirmation -eq 'y') {
& $Action
}
}
Confirm-Action -Message "Do you want to continue?" -Action {
Write-Host "Action executed."
}
A linha Function Confirm-Action { ... }
define uma função do PowerShell chamada Confirm-Action
. A função aceita dois parâmetros: $Message
e $Action
.
Esta linha, $confirmation = Read-Host $Message
, solicita ao usuário uma entrada usando o cmdlet Read-Host
e armazena a entrada na variável $confirmation
. O parâmetro $Message
especifica a mensagem exibida ao usuário.
A declaração if
verifica se a entrada do usuário armazenada em $confirmation
é igual ao caractere 'y'
.
Saída:
Do you want to continue?: y
Action executed.
Quando você executa o comando, ele solicita ao usuário uma confirmação ("Você deseja continuar?"
) e executa a ação com a mensagem "Ação Executada"
se o usuário escolher 'y'
.
Conclusão
No PowerShell, os prompts de confirmação são essenciais para o controle e a segurança do usuário. Neste artigo, exploramos quatro métodos para implementar prompts de confirmação; o switch -Confirm
simplifica os prompts básicos de 'Sim/Não'
, a declaração if
com Read-Host
permite personalização, o método PromptForChoice()
fornece opções interativas avançadas e o uso de abordagens baseadas em funções para criar uma função personalizada que inclui lógica de confirmação, garantindo interações eficientes e seguras do usuário em scripts.
Esperamos que este tutorial ajude você a entender como solicitar aos usuários uma confirmação de 'Sim/Não'
no PowerShell.