Comment appuyer sur une touche pour continuer dans PowerShell.

  1. Utiliser ReadKey (System.Console) pour activer le presser n'importe quelle touche pour continuer dans PowerShell
  2. Utiliser ReadKey (Console) pour activer le presser n'importe quelle touche pour continuer dans PowerShell
  3. Utiliser ReadKey (RawUI) pour activer le presser n'importe quelle touche pour continuer dans PowerShell
  4. Utiliser Read-Host pour activer le presser n'importe quelle touche pour continuer dans PowerShell
  5. Utiliser la commande cmd /c 'pause' pour activer le presser n'importe quelle touche pour continuer dans PowerShell
  6. Utiliser timeout pour activer le presser n'importe quelle touche pour continuer dans PowerShell
  7. Conclusion
Comment appuyer sur une touche pour continuer dans PowerShell.

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 :

powershell appuyez sur une touche pour continuer - sortie 1

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 :

powershell appuyez sur une touche pour continuer - sortie 2

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 :

powershell appuyez sur une touche pour continuer - sortie 3

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 :

powershell appuyez sur une touche pour continuer - sortie 4

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 :

powershell appuyez sur une touche pour continuer - sortie 5

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 :

powershell appuyez sur une touche pour continuer - sortie 6

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 :

powershell appuyez sur une touche pour continuer - sortie 7

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.

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