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".