about_PSConsoleHostReadLine
Breve descrição
Explica como personalizar a forma como o PowerShell lê a entrada no prompt do console.
Descrição longa
A partir do Windows PowerShell 3.0, você pode escrever uma função chamada PSConsoleHostReadLine
que substitui a maneira padrão como a entrada do console é processada.
Esta função é estendida pelo módulo PSReadLine.
Exemplos
O exemplo a seguir inicia o Bloco de Notas e obtém entrada de um arquivo de texto criado pelo usuário:
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
}
Comentários
Por padrão, o PowerShell lê a entrada do console no que é conhecido como "Cooked Mode" — no qual o subsistema do console do Windows lida com todas as teclas pressionadas, menus F7 e outras entradas. Quando você pressiona Enter ou Tab, o PowerShell obtém o texto que você digitou até aquele ponto.
Não há como saber que você pressionou Ctrl+R, Ctrl+A, Ctrl+E, ou qualquer outra tecla antes de pressionar Enter ou Tab. No Windows PowerShell 3.0, a função PSConsoleHostReadLine
resolve esse problema. Quando você define uma função chamada PSConsoleHostReadline
no host do console do PowerShell, o PowerShell chama essa função em vez do mecanismo de entrada "Modo Cozido".
Consulte Também
- about_Prompts
- PSConsoleHostReadLine
- High-Level modos de console