À propos de PSConsoleHostReadLine

DESCRIPTION COURTE

Explique comment créer une personnalisation de la façon dont PowerShell lit l’entrée à l’invite de console.

DESCRIPTION DÉTAILLÉE

À compter de Windows PowerShell 3.0, vous pouvez écrire une fonction nommée PSConsoleHostReadLine qui remplace la façon dont par défaut l’entrée de console est traitée.

EXEMPLES

L’exemple suivant lance le Bloc-notes et obtient une entrée à partir d’un fichier texte créé par l’utilisateur :

function PSConsoleHostReadLine
{
  $inputFile = Join-Path $env:TEMP PSConsoleHostReadLine
  Set-Content $inputFile "PS > "

  # Notepad opens. Enter your command in it, save the file, and then exit.
  notepad $inputFile | Out-Null
  $userInput = Get-Content $inputFile
  $resultingCommand = $userInput.Replace("PS >", "")
  $resultingCommand
}

Remarques

Par défaut, PowerShell lit les entrées de la console dans ce que l’on appelle le « mode cuit », dans lequel le sous-système de console Windows gère toutes les pressions sur les touches, les menus F7 et les autres entrées. Lorsque vous appuyez sur Entrée ou sur Tab, PowerShell récupère le texte que vous avez tapé jusqu’à ce point. Il n’y a aucun moyen pour lui de savoir que vous avez appuyé sur Ctrl-R, Ctrl-A, Ctrl-E ou toute autre touche avant d’appuyer sur Entrée ou Tab. Dans Windows PowerShell 3.0, la fonction PSConsoleHostReadLine résout ce problème. Lorsque vous définissez une fonction nommée PSConsoleHostReadline dans l’hôte de console PowerShell, PowerShell appelle cette fonction au lieu du mécanisme d’entrée « Mode cuit ».

VOIR AUSSI

about_Prompts