Dela via


about_PSConsoleHostReadLine

KORT BESKRIVNING

Förklarar 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 som konsolindata bearbetas på.

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 Windows-konsolundersystemet hanterar alla tangenttryckningar, F7-menyer och andra indata. När du trycker på Retur eller Tabb hämtar PowerShell den text som du har skrivit fram till den punkten. Det går inte att veta att du tryckte 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

about_Prompts