Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Descripción breve
Explica cómo personalizar cómo PowerShell lee la entrada en el símbolo del sistema de consola.
Descripción larga
A partir de Windows PowerShell 3.0, puede escribir una función denominada PSConsoleHostReadLine que invalide la forma predeterminada en que se procesa la entrada de la consola.
Este módulo PSReadLine extiende esta función.
Ejemplos
En el ejemplo siguiente se inicia el Bloc de notas y se obtiene la entrada 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 cocinado", en el que el subsistema de la consola de Windows controla todas las teclas, menús de F7 y otra entrada. Al presionar Escribir o Tab, PowerShell obtiene el texto que ha escrito hasta ese punto.
No hay forma de saber que presionaste Ctrl+R, Ctrl+A, Ctrl+Eo cualquier otra tecla antes de presionar Entrar o Tab. En Windows PowerShell 3.0, la función PSConsoleHostReadLine resuelve este problema. Al definir una función denominada PSConsoleHostReadline en el host de consola de PowerShell, PowerShell llama a esa función en lugar del mecanismo de entrada "Modo cocinado".
Consulte también
- about_Prompts
- PSConsoleHostReadLine
- modos de consola deHigh-Level