Comment confirmer l'invite dans PowerShell

  1. Utiliser le commutateur -Confirm pour l’invite de confirmation dans PowerShell
  2. Utiliser l’instruction if pour l’invite de confirmation dans PowerShell
  3. Utiliser la méthode PromptForChoice() pour l’invite de confirmation dans PowerShell
  4. Utiliser des approches basées sur des fonctions pour l’invite de confirmation dans PowerShell
  5. Conclusion
Comment confirmer l'invite dans PowerShell

L’idée générale derrière l’invite de confirmation est de créer une option pour passer d’une action à une autre. Par exemple, lorsque l’utilisateur choisit Oui, le script doit continuer, et lorsque l’utilisateur sélectionne Non, le script doit être quitté.

PowerShell peut automatiquement demander confirmation à l’utilisateur avant d’effectuer une action en utilisant le commutateur -Confirm. Ce tutoriel présentera différentes méthodes pour demander confirmation aux utilisateurs afin de procéder à une action dans PowerShell.

Utiliser le commutateur -Confirm pour l’invite de confirmation dans PowerShell

PowerShell dispose d’un ensemble de variables de préférence qui affectent son environnement d’exploitation et vous permettent de personnaliser son comportement. $ConfirmPreference est l’une des variables de préférence qui détermine si PowerShell vous demande automatiquement confirmation avant d’exécuter un cmdlet ou une fonction.

Cela aide à demander confirmation avant d’exécuter des cmdlets ou des fonctions présentant un risque faible, moyen ou élevé. Comme la plupart des cmdlets et des fonctions sont de risque moyen, cela ne demande pas confirmation si la valeur de la variable est définie sur High.

$ConfirmPreference

Sortie :

High

Vous devez utiliser le commutateur -Confirm avec la commande pour demander confirmation à l’utilisateur. Cela force la commande à afficher l’invite de confirmation dans PowerShell.

Une manière plus simple d’utiliser le commutateur -Confirm serait de l’utiliser dans le cmdlet Remove-Item, qui peut produire une action de confirmation dans une commande plus simple. La commande suivante montre un exemple de son utilisation.

Commande :

Remove-Item test.txt -Confirm

Sortie :

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

Dans la sortie, le commutateur -Confirm force PowerShell à afficher une invite de confirmation. Cette méthode est directe et idéale pour les scénarios où vous souhaitez demander à l’utilisateur une simple confirmation 'Oui' ou 'Non'.

Dans l’interface graphique de PowerShell, cela ressemblera à ceci.

confirmer l’invite de commutateur dans PowerShell

Utiliser l’instruction if pour l’invite de confirmation dans PowerShell

Vous pouvez également utiliser l’instruction if et fournir les conditions pour continuer pour les utilisateurs. Par exemple, la commande suivante demande à l’utilisateur confirmation s’il souhaite continuer.

Commande :

$confirmation = Read-Host "Do you want to continue?"
if ($confirmation -eq 'y') {
    Write-Host "Welcome to DelftStack."
}

Sortie :

Do you want to continue?: y
Welcome to DelftStack.

Le cmdlet Read-Host est utilisé pour lire l’entrée d’un utilisateur et stocker l’entrée dans la variable $confirmation. L’instruction if vérifie si l’entrée de l’utilisateur ($confirmation) est égale à 'y', et si c’est vrai, elle exécute l’action spécifiée.

Cette approche offre des options supplémentaires pour personnaliser le message affiché à l’utilisateur et ce qui se passe lorsqu’il fait un choix.

Utiliser la méthode PromptForChoice() pour l’invite de confirmation dans PowerShell

Dans PowerShell, vous pouvez également demander aux utilisateurs une confirmation en utilisant la méthode PromptForChoice(). Elle affiche une boîte de dialogue qui permet à l’utilisateur de sélectionner une option parmi un ensemble d’options et de procéder à l’action selon ses choix.

La commande suivante est un exemple qui demande une entrée Oui/Non à un utilisateur. Nous définissons le $title, la $question et les $choices pour l’invite de confirmation.

Commande :

$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.'
}

Cette ligne de code $decision = $Host.UI.PromptForChoice($title, $question, $choices, 1) présente une boîte de dialogue à l’utilisateur en utilisant la méthode PromptForChoice(). Dans l’instruction if, elle vérifie si la valeur stockée dans la variable $decision est égale à 0 (l’index du premier choix dans le tableau $choices).

1ère Sortie :

Confirm
Do you want to continue?
[Y] Yes  [N] No  [?] Help (default is "N"): Yes
Your choice is Yes.

Dans la 1ère sortie, l’utilisateur sélectionne "Oui". En conséquence, la sortie "Votre choix est Oui." est affichée.

2ème Sortie :

Confirm
Do you want to continue?
[Y] Yes  [N] No  [?] Help (default is "N"): No
Your choice is No.

Dans la 2ème sortie, l’utilisateur sélectionne "Non", et la seconde commande à l’intérieur des parenthèses sera exécutée. Par conséquent, "Votre choix est Non." est affiché.

Cette méthode offre une expérience de confirmation plus interactive et personnalisable, ce qui la rend adaptée aux scénarios complexes.

Si vous exécutez le script ci-dessus dans la version GUI de PowerShell, vous pouvez voir la boîte de dialogue de confirmation.

Invite de confirmation PromptForChoice dans PowerShell

Utiliser des approches basées sur des fonctions pour l’invite de confirmation dans PowerShell

Vous pouvez créer des fonctions PowerShell personnalisées qui incluent la logique de confirmation. Cela vous permet d’encapsuler la logique de confirmation dans des fonctions et de les réutiliser dans vos scripts.

Commande :

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."
}

La ligne Function Confirm-Action { ... } définit une fonction PowerShell nommée Confirm-Action. La fonction prend deux paramètres : $Message et $Action.

Cette ligne, $confirmation = Read-Host $Message, demande à l’utilisateur de fournir une entrée à l’aide du cmdlet Read-Host et stocke l’entrée dans la variable $confirmation. Le paramètre $Message précise le message affiché à l’utilisateur.

L’instruction if vérifie si l’entrée de l’utilisateur stockée dans $confirmation est égale au caractère 'y'.

Sortie :

Do you want to continue?: y
Action executed.

Lorsque vous exécutez la commande, elle demande à l’utilisateur une confirmation ("Voulez-vous continuer?") et exécute l’action avec le message "Action Exécutée" si l’utilisateur choisit 'y'.

Conclusion

Dans PowerShell, les invites de confirmation sont essentielles pour le contrôle et la sécurité de l’utilisateur. Dans cet article, nous avons exploré quatre méthodes pour mettre en œuvre des invites de confirmation ; le commutateur -Confirm simplifie les invites de base 'Oui/Non', l’instruction if avec Read-Host permet la personnalisation, la méthode PromptForChoice() fournit des options interactives avancées, et l’utilisation d’approches basées sur des fonctions pour créer une fonction personnalisée qui inclut la logique de confirmation, garantissant des interactions utilisateur efficaces et sécurisées dans les scripts.

Nous espérons que ce tutoriel vous aide à comprendre comment demander aux utilisateurs une confirmation 'Oui/Non' dans PowerShell.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
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