Freigeben über


about_PSConsoleHostReadLine

Kurze Beschreibung

Erläutert, wie Sie an der Konsolenaufforderung eine Anpassung erstellen, wie PowerShell Eingaben liest.

Lange Beschreibung

Ab Windows PowerShell V3 können Sie eine Funktion mit dem Namen "PSConsoleHostReadLine" schreiben, die die Standardmäßige Verarbeitung der Konsoleneingabe außer Kraft setzt.

BEISPIELE

Das folgende Beispiel startet Editor und ruft Eingaben aus einer Textdatei ab, 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
}

ANMERKUNGEN

Standardmäßig liest PowerShell Eingaben aus der Konsole in dem sogenannten "Gekochten Modus" vor – in dem das Windows-Konsolensubsystem alle Tastendrucke, F7-Menüs und andere Eingaben verarbeitet. Wenn Sie die EINGABETASTE oder TAB drücken, ruft Windows PowerShell den Text ab, den Sie an diesem Punkt eingegeben haben. Es gibt keine Möglichkeit zu wissen, dass Sie STRG-R, STRG-A, STRG-E oder andere Tasten gedrückt haben, bevor Sie die EINGABETASTE oder TAB drücken. In Windows PowerShell, Version 3, löst die PSConsoleHostReadLine-Funktion dieses Problem. Wenn Sie eine Funktion namens "PSConsoleHostReadline" im Windows PowerShell-Konsolenhost definieren, ruft Windows PowerShell diese Funktion anstelle des Eingabemechanismus "Gekochter Modus" auf.

Weitere Informationen