Comment appuyer sur une touche pour continuer dans PowerShell.
-
Utiliser
ReadKey (System.Console)
pour activer lepresser n'importe quelle touche pour continuer
dans PowerShell -
Utiliser
ReadKey (Console)
pour activer lepresser n'importe quelle touche pour continuer
dans PowerShell -
Utiliser
ReadKey (RawUI)
pour activer lepresser n'importe quelle touche pour continuer
dans PowerShell -
Utiliser
Read-Host
pour activer lepresser n'importe quelle touche pour continuer
dans PowerShell -
Utiliser la commande
cmd /c 'pause'
pour activer lepresser n'importe quelle touche pour continuer
dans PowerShell -
Utiliser
timeout
pour activer lepresser n'importe quelle touche pour continuer
dans PowerShell - Conclusion

Dans le script PowerShell, activer une fonctionnalité de presser n'importe quelle touche pour continuer
est une exigence courante, en particulier lors de la création d’applications interactives en ligne de commande ou en fournissant des retours aux utilisateurs. Plusieurs méthodes existent pour réaliser cette fonctionnalité, chacune ayant ses propres avantages et cas d’utilisation.
Cet article explore diverses méthodes pour mettre en œuvre la fonctionnalité presser n'importe quelle touche pour continuer
dans les scripts PowerShell, allant des cmdlets intégrés à l’utilisation de commandes externes et d’objets COM.
Utiliser ReadKey (System.Console)
pour activer le presser n'importe quelle touche pour continuer
dans PowerShell
La méthode [System.Console]::ReadKey()
dans PowerShell est utilisée pour lire la prochaine touche ou touche de fonction pressée par l’utilisateur à partir du flux d’entrée standard (généralement le clavier). Lorsqu’elle est appelée sans aucun argument, cette méthode attend que l’utilisateur appuie sur une touche et renvoie un objet de type [System.ConsoleKeyInfo]
, qui représente la touche pressée.
Le System.Console ReadKey
peut être exécuté comme indiqué ci-dessous. Il accepte n’importe quelle touche sauf Shift, Alt, Ctrl et d’autres touches modificateurs.
$keyInfo = [System.Console]::ReadKey($true)
Write-Host "Key Pressed: $($keyInfo.KeyChar)"
Dans la ligne de code $keyInfo = [System.Console]::ReadKey($true)
, nous utilisons la méthode [System.Console]::ReadKey()
pour capturer l’entrée de l’utilisateur. En passant $true
comme argument, nous indiquons que la touche pressée ne doit pas être affichée dans la fenêtre de la console.
Cela empêche la console de se remplir de caractères inutiles, offrant une expérience utilisateur plus propre. Pour afficher la sortie de $keyInfo
, nous pouvons accéder à ses propriétés en utilisant la notation par points.
Sortie :
Utiliser ReadKey (Console)
pour activer le presser n'importe quelle touche pour continuer
dans PowerShell
Vous pouvez utiliser le [Console]::ReadKey()
pour activer le presser n'importe quelle touche pour continuer
dans PowerShell. Il peut lire des touches et des modificateurs tout en mettant en pause l’exécution. Il exclut Shift, Alt, Ctrl et d’autres touches modificateurs.
$keyInfo = [Console]::ReadKey()
Dans la ligne $keyInfo = [Console]::ReadKey()
, nous utilisons la méthode [Console]::ReadKey()
pour capturer l’entrée de l’utilisateur. Cette méthode attend que l’utilisateur appuie sur une touche et renvoie un objet représentant la touche pressée, le stockant dans la variable $keyInfo
.
Sortie :
Utiliser ReadKey (RawUI)
pour activer le presser n'importe quelle touche pour continuer
dans PowerShell
La méthode $Host.UI.RawUI.ReadKey()
dans PowerShell est utilisée pour lire la prochaine touche ou touche de fonction pressée par l’utilisateur à partir de l’entrée de la console. Lorsqu’elle est appelée, cette méthode attend que l’utilisateur appuie sur une touche et renvoie un objet représentant la touche pressée.
Cet objet contient des propriétés telles que Character
, représentant le caractère Unicode de la touche pressée, et KeyDown
, indiquant si la touche a été enfoncée.
Cette méthode est similaire à [Console]::ReadKey()
. Elle accepte n’importe quelle touche, y compris Ctrl, Shift, Alt et d’autres touches modificateurs.
Il existe différentes options ReadKeyOptions
qui peuvent être passées dans la méthode RawUI ReadKey
, telles que IncludeKeyDown
, IncludeKeyUp
, NoEcho
et AllowCtrlC
.
Exemple :
$keyInfo = $Host.UI.RawUI.ReadKey()
Dans cet exemple, nous utilisons $Host.UI.RawUI.ReadKey()
pour capturer la touche pressée par l’utilisateur et la stocker dans la variable $keyInfo
. Cette méthode attend que l’utilisateur appuie sur une touche et renvoie un objet représentant la touche pressée.
L’objet $keyInfo
contient des propriétés telles que Character
(représentant le caractère de la touche pressée) et KeyDown
(indiquant si la touche a été enfoncée).
Sortie :
Utiliser Read-Host
pour activer le presser n'importe quelle touche pour continuer
dans PowerShell
La cmdlet Read-Host
dans PowerShell est un outil polyvalent utilisé pour capturer l’entrée de l’utilisateur à partir de la fenêtre de la console. Son objectif principal est d’afficher un message d’invite à l’utilisateur et d’attendre qu’il saisisse une valeur, qui est ensuite stockée dans une variable pour un traitement ultérieur dans le script.
Exemple :
Read-Host -Prompt "Press any key to continue"
Dans cet exemple, nous utilisons Read-Host
avec le paramètre -Prompt
pour afficher le message "Appuyez sur n'importe quelle touche pour continuer..."
à l’utilisateur. Le script met en pause l’exécution à ce moment, attendant que l’utilisateur saisisse un texte suivi de la touche Entrée.
Bien que ce ne soit pas exactement presser n'importe quelle touche
, cette méthode atteint un résultat similaire en exigeant une saisie de l’utilisateur avant de continuer.
Sortie :
Utiliser la commande cmd /c 'pause'
pour activer le presser n'importe quelle touche pour continuer
dans PowerShell
Dans les scripts PowerShell, la méthode cmd /c 'pause'
fournit un moyen simple de mettre en pause l’exécution du script et d’attendre la reconnaissance de l’utilisateur avant de continuer. Cette méthode utilise la commande cmd
pour exécuter la commande pause à partir de l’invite de commandes dans un script PowerShell.
Lorsqu’elle est exécutée, la commande pause affiche le message "Appuyez sur n'importe quelle touche pour continuer . . ."
et attend que l’utilisateur appuie sur n’importe quelle touche avant de permettre au script de continuer l’exécution.
Exemple :
cmd /c pause
Dans cet exemple, nous utilisons la commande cmd /c 'pause'
pour mettre en pause l’exécution du script et attendre l’entrée de l’utilisateur. Lorsqu’elle est exécutée, la fenêtre de l’invite de commandes affiche le message "Appuyez sur n'importe quelle touche pour continuer . . ."
et attend que l’utilisateur appuie sur n’importe quelle touche avant de permettre au script de continuer.
Sortie :
Utiliser timeout
pour activer le presser n'importe quelle touche pour continuer
dans PowerShell
La commande timeout
peut mettre en pause l’exécution pendant une période de temps spécifique ou indéfinie. Vous pouvez utiliser l’option /t
pour spécifier le temps en secondes.
La valeur valide du temps d’attente spécifié varie de -1
à 99999
.
Exemple :
timeout /t 5
Dans cet exemple, nous utilisons la commande timeout
pour mettre en pause l’exécution du script pendant 5 secondes. Cela crée effectivement une invite pour que l’utilisateur attende 5 secondes avant de continuer.
Sortie :
La valeur -1
est utilisée pour mettre en pause l’exécution pendant une durée infinie si une touche n’est pas pressée.
timeout /t -1
Sortie :
Conclusion
Mettre en œuvre la fonctionnalité presser n'importe quelle touche pour continuer
dans les scripts PowerShell est essentiel pour créer des applications interactives et conviviales en ligne de commande. En utilisant des méthodes comme [System.Console]::ReadKey()
, [Console]::ReadKey()
, Read-Host
, cmd /c 'pause'
, timeout
, et WScript.Shell Popup
, les auteurs de scripts peuvent fournir aux utilisateurs des invites claires et mettre en pause l’exécution jusqu’à ce qu’une reconnaissance de l’utilisateur se produise.
Chaque méthode offre des capacités uniques et peut être adaptée pour répondre à des exigences spécifiques, garantissant une expérience utilisateur transparente et une interactivité améliorée des scripts. Que ce soit pour afficher des messages informatifs, confirmer des actions ou créer des utilitaires interactifs, PowerShell offre des outils polyvalents pour répondre à divers besoins en matière de scripting.