Búsqueda de sitios web

acerca de PSConsoleHostReadLine


Breve descripción

Explica cómo crear una personalización de cómo PowerShell lee la entrada en el indicador de la consola.

Descripción larga

A partir de Windows PowerShell 3.0, puede escribir una función denominada PSConsoleHostReadLine que anula la forma predeterminada en que se procesa la entrada de la consola.

EJEMPLOS

El siguiente ejemplo inicia el Bloc de notas y obtiene información de un archivo de texto que crea el usuario:

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
}

OBSERVACIONES

De forma predeterminada, PowerShell lee la entrada de la consola en lo que se conoce como "modo preparado", en el que el subsistema de la consola de Windows maneja todas las pulsaciones de teclas, los menús F7 y otras entradas. Cuando presiona Enter o Tab, PowerShell obtiene el texto que ha escrito hasta ese momento. No hay forma de que sepa que presionó Ctrl-R, Ctrl-A, Ctrl-E o cualquier otra tecla antes de presionar Enter o Tab. En Windows PowerShell 3.0, la función PSConsoleHostReadLine resuelve este problema. Cuando define una función denominada PSConsoleHostReadline en el host de la consola de PowerShell, PowerShell llama a esa función en lugar del mecanismo de entrada "Modo preparado".

Ver también

  • acerca de_indicaciones

Artículos relacionados