about_PSConsoleHostReadLine

Kort beskrivning

Beskriver hur du skapar en anpassning av hur PowerShell läser indata i konsolprompten.

Lång beskrivning

Från och med Windows PowerShell 3.0 kan du skriva en funktion med namnet PSConsoleHostReadLine som åsidosätter standardsättet att konsolindata bearbetas.

EXEMPEL

I följande exempel startas Anteckningar och indata hämtas från en textfil som användaren skapar:

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
}

REMARKS

Som standard läser PowerShell indata från konsolen i det som kallas "Kokt läge" – där Undersystemet för Windows-konsolen hanterar alla tangenttryckningar, F7-menyer och andra indata. När du trycker på Retur eller Tabb hämtar PowerShell texten som du har skrivit fram till den punkten. Det går inte att veta att du har tryckt på Ctrl-R, Ctrl-A, Ctrl-E eller andra tangenter innan du trycker på Retur eller Tabb. I Windows PowerShell 3.0 löser funktionen PSConsoleHostReadLine det här problemet. När du definierar en funktion med namnet PSConsoleHostReadline i PowerShell-konsolvärden anropar PowerShell den funktionen i stället för indatamekanismen "Kokt läge".

Se även