about_PSConsoleHostReadLine

Se aplica a: Windows PowerShell 4.0, Windows PowerShell 5.0

TEMA

about_PSConsoleHostReadLine

DESCRIPCIÓN BREVE

Explica cómo personalizar la manera en que Windows PowerShell lee las entradas del símbolo del sistema de consola.

DESCRIPCIÓN LARGA

A partir de Windows PowerShell V3, puede escribir una función denominada PSConsoleHostReadLine que invalide el modo predeterminado en que se procesa la entrada de la consola.

EJEMPLOS

En el ejemplo siguiente se inicia el Bloc de notas y se obtiene la entrada de un archivo de texto creado por 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
         }

COMENTARIOS

De forma predeterminada, Windows PowerShell lee las entradas de la consola en lo que se conoce como “Modo cocinado”, es decir, el subsistema de consola de Windows controla todas las pulsaciones de teclas, los menús F7 y demás entradas. Al presionar ENTRAR o tabulador, Windows PowerShell obtiene el texto que escribió hasta ese punto. No hay ninguna manera de que sepa si se presionó Ctrl+R, Ctrl+A, Ctrl+E u otras teclas antes de presionar ENTRAR o tabulador. En Windows PowerShell versión 3, la función PSConsoleHostReadLine soluciona este problema. Cuando se define una función denominada PSConsoleHostReadline en el host de la consola de Windows PowerShell, Windows PowerShell llama a esa función en lugar del mecanismo de entrada del “Modo cocinado”.

VEA TAMBIÉN

about_Prompts