Delen via


about_PSConsoleHostReadLine

Korte beschrijving

Hierin wordt uitgelegd hoe u een aanpassen hoe PowerShell invoer leest bij de consoleprompt.

Lange beschrijving

Vanaf Windows PowerShell 3.0 kunt u een functie met de naam PSConsoleHostReadLine schrijven die de standaard manier overschrijft waarop consoleinvoer wordt verwerkt.

VOORBEELDEN

In het volgende voorbeeld wordt Kladblok gestart en wordt invoer opgehaald uit een tekstbestand dat de gebruiker maakt:

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
}

OPMERKINGEN

Standaard leest PowerShell invoer uit de console in de zogenaamde 'Gekookte modus', waarbij het Subsysteem van de Windows-console alle toetsdrukken, F7-menu's en andere invoer verwerkt. Wanneer u op Enter of Tab drukt, krijgt PowerShell de tekst die u tot dat moment hebt getypt. Het is niet mogelijk om te weten dat u op Ctrl+R, Ctrl-A, Ctrl+E of een andere toets hebt gedrukt voordat u op Enter of Tab drukt. In Windows PowerShell 3.0 lost de functie PSConsoleHostReadLine dit probleem op. Wanneer u een functie met de naam PSConsoleHostReadline definieert in de PowerShell-consolehost, roept PowerShell die functie aan in plaats van het invoermechanisme 'Gekookte modus'.

Zie ook