Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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é
- about_Prompts
- PSConsoleHostReadLine
- režimy konzoly High-Level