Sdílet prostřednictvím


about_PSConsoleHostReadLine

Krátký popis

Vysvětluje, jak přizpůsobit, jak PowerShell čte vstup na příkazovém řádku konzoly.

Dlouhý popis

Počínaje windows PowerShellem 3.0 můžete napsat funkci s názvem PSConsoleHostReadLine, která přepíše výchozí způsob zpracování vstupu konzoly.

Tato funkce je rozšířena modulem PSReadLine.

Příklady

Následující příklad spustí Poznámkový blok a získá vstup z textového souboru, který uživatel vytvoří:

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
}

Poznámky

PowerShell ve výchozím nastavení čte vstup z konzoly v tom, co se označuje jako "Cooked Mode" –- ve kterém subsystém konzoly Windows zpracovává všechny klávesové zkratky, F7 menu a další vstup. Když stisknete Enter nebo Tab, PowerShell získá text, který jste zadali až do tohoto bodu. Neexistuje způsob, jak zjistit, že jste stiskli Ctrl+R, Ctrl+A, Ctrl+Enebo jiné klávesy před stisknutím kláves Enter nebo Tab. V prostředí Windows PowerShell 3.0 řeší tento problém funkce PSConsoleHostReadLine. Když definujete funkci s názvem PSConsoleHostReadline v hostiteli konzoly PowerShellu, PowerShell volá tuto funkci místo vstupního mechanismu "Cooked Mode".

Viz také