about_PSConsoleHostReadLine

Aplica-se a: Windows PowerShell 4.0, Windows PowerShell 5.0

TÓPICO

about_PSConsoleHostReadLine

DESCRIÇÃO BREVE

Explica como criar uma personalização de como Windows PowerShell lê a entrada no prompt do console.

DESCRIÇÃO LONGA

Iniciando no Windows PowerShell V3, você pode escrever uma função chamada PSConsoleHostReadLine que substitui o modo padrão no qual a entrada de console é processada.

EXEMPLOS

O exemplo a seguir inicia o bloco de notas e obtém dados de entrada de texto de um arquivo que o usuário cria:

         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, Windows PowerShell lê a entrada do console na qual é conhecido como "Modo processado", em que o subsistema de console do Windows trata todos os pressionamentos de teclas, menus F7 e outra entrada. Quando você pressiona Enter ou Tab, Windows PowerShell obtém o texto que você digitou até esse ponto. Não há nenhuma maneira de ele saber que você pressionou as teclas Ctrl-R, Ctrl-A, Ctrl-E, ou qualquer outra, antes de pressionar Enter ou Tab. Em Windows PowerShell versão 3, a função PSConsoleHostReadLine resolve esse problema. Quando você define uma função chamada PSConsoleHostReadline no host de console Windows PowerShell, Windows PowerShell chama essa função em vez do mecanismo de entrada "Modo processado".

CONSULTE TAMBÉM

about_Prompts