about_PSConsoleHostReadLine

Korte beschrijving

Hierin wordt uitgelegd hoe u in 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 wat bekend staat als 'Cooked Mode', waarin het Subsysteem van de Windows-console alle toetsdrukken, F7-menu's en andere invoer verwerkt. Wanneer u op Enter of Tab drukt, haalt PowerShell de tekst op die u tot dat punt hebt getypt. Er is geen manier om te weten dat u op Ctrl-R, Ctrl-A, Ctrl-A, Ctrl-E of andere toetsen drukt 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 'Cooked Mode'.

Zie ook