Share via


about_PSConsoleHostReadLine

Description courte

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

Description longue

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

EXEMPLES

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

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 qu’on appelle « Mode cuit » : dans laquelle le sous-système de console Windows gère toutes les touches, menus F7 et autres entrées. Lorsque vous appuyez sur Entrée ou Tab, PowerShell obtient le texte que vous avez tapé jusqu’à ce point. Il n’existe aucun moyen 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 la console PowerShell, PowerShell appelle cette fonction au lieu du mécanisme d’entrée « Mode cuit ».

Voir aussi