Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 predefinição, o PowerShell lê a entrada do console no que é conhecido como "Modo Cozinhado" — no qual o subsistema do console do Windows lida com todos os pulsos de teclas, F7 menus 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