about_PSConsoleHostReadLine
Letzte Aktualisierung: Mai 2014
Betrifft: Windows PowerShell 4.0, Windows PowerShell 5.0
THEMA
about_PSConsoleHostReadLine
KURZE BESCHREIBUNG
Erläutert das Erstellen eines angepassten Windows PowerShell-Lesevorgangs der Eingabe an der Konsolenbefehlszeile.
LANGE BESCHREIBUNG
Ab Windows PowerShell V3 können Sie eine Funktion namens PSConsoleHostReadLine schreiben, mit der die Standardmethode zur Verarbeitung der Konsoleneingabe überschrieben wird.
BEISPIELE
Im folgenden Beispiel wird Notepad gestartet und erhält die Eingaben aus einer Textdatei, die der Benutzer erstellt:
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
}
HINWEISE
Standardmäßig liest Windows PowerShell die Eingaben von der Konsole im sogenannten „Cooked-Modus“, in dem das Subsystem der Windows-Konsole alle Tastenanschläge, F7-Menüs und andere Eingaben verarbeitet. Wenn Sie die Eingabetaste oder Tab drücken, erhält Windows PowerShell den Text, die Sie bis zu diesem Zeitpunkt eingegeben haben. Es gab keine Möglichkeit, mit der erkannt werden konnte, ob Sie vor dem Drücken von Eingabetaste oder Tab die Tastenkombinationen STRG+R, STRG+A, STRG+E oder andere Tasten gedrückt haben. In Windows PowerShell Version 3 wurde dieses Problem mit der PSConsoleHostReadLine-Funktion gelöst. Wenn Sie eine Funktion namens PSConsoleHostReadline im Windows PowerShell-Konsolenhost definieren, ruft Windows PowerShell diese Funktion anstelle des „Cooked-Modus“-Eingabemechanismus.
SIEHE AUCH
about_Prompts