Partilhar via


about_PSConsoleHostReadLine

Breve descrição

Explica como criar uma personalização de 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.

EXEMPLOS

O exemplo a seguir inicia o Bloco de Notas e obtém entrada de um arquivo de texto 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, o PowerShell lê a entrada do console no que é conhecido como "Modo Cozido" -- 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