Touches De Limite PowerShell Acceptées Par Le Script Pause

Placer les lignes suivantes à la fin d'un script PowerShell a les fonctionnalités suivantes :

  if($Host.Name -eq "ConsoleHost")
  {
    Write-Host "Press any key to continue..." -NoNewline
    $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") > $null
  }
  1. Si j'exécute le script en cliquant dessus avec le bouton droit de la souris, en allant dans "Exécuter avec PowerShell", la fenêtre de la console reste ouverte pour moi jusqu'à ce que j'appuie sur une touche pour continuer.
  2. Si j'ai déjà une fenêtre PowerShell ouverte et que j'exécute le script à partir de cette fenêtre, bien que le texte "Appuyez sur n'importe quelle touche pour continuer" apparaisse toujours, je n'ai pas à appuyer sur n'importe quoi pour continuer; il le fait tout seul. Par conséquent, je peux immédiatement exécuter autre chose par la suite.

J'aime ce comportement, mais je préférerais le limiter à un sous-ensemble spécifique de clés (ou même à une seule clé, telle que la touche entrée), si possible. L'utilisation de read-host ne fonctionne pas, alors je dois toujours entrer une entrée même lors de l'exécution à partir d'une autre fenêtre PowerShell; le but est simplement d'empêcher la fermeture de la fenêtre lorsque je l'exécute à partir du menu contextuel. Je n'aurais pas dû pour entrer quoi que ce soit lors de l'exécution à partir d'une console PowerShell déjà existante.

Fondamentalement, j'aime la fonctionnalité du code que j'ai ci-dessus, mais je veux limiter les clés auxquelles il s'applique.

Est-il possible d'y parvenir? Si oui, comment ?

demandé sur