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