PowerShell : comment attendre d’appuyer sur « Entrée » dans un script ?
I. Présentation
Bien que PowerShell soit bien pratique pour automatiser un maximum d'actions et faciliter l'administration des systèmes, il y a parfois des actions qui nécessitent d'être réalisée manuellement. Imaginons que l'on ait 10 actions à réaliser, et que la 5ème action ne soit pas réalisable par script, comment faire patienter notre script pendant que l'on réalise l'opération soit-même avant qu'il poursuive vers la 6ème étape ?
On pourrait utiliser Start-Sleep pour définir une pause fixe de X secondes ou minutes, mais il faut être sûr de son coup... Ou tout simplement, on peut demander au script PowerShell d'attendre que la touche ENTER du clavier soit pressée dans la console d'exécution du script : ce qui nous permet de donner le go pour la suite de l'exécution.
Voyons cette astuce ensemble...
II. Attendre d'appuyer sur "Entrée"
En PowerShell, il y a une commande qui sert à récupérer une saisie utilisateur dans la console, il s'agit de "Read-Host". Lorsque l'on effectue une saisie, pour la valider il faut appuyer sur... "Entrée" ! Vous voyez où je veux en venir ?
En fait, c'est assez simple, à l'endroit où vous souhaitez faire une pause et attendre que la touche Entrée soit appuyée, il suffit d'inclure une ligne comme celle-ci :
Read-Host "Appuyez sur ENTREE pour continuer..."
Lors de l'exécution du script, le message suivant va s'afficher dans la console :
Appuyez sur ENTREE pour continuer...
Il suffira d'appuyer sur la touche magique lorsque vous êtes prêt et le script va poursuivre son exécution... Voilà comme faire une pause avec reprise manuelle ?. Cette méthode fonctionne aussi bien dans une console PowerShell que dans PowerShell ISE.
Ou simplement l’alias batch : pause
qui pour le coup n’accepte que la touche « Entrée » 😉