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.
PowerShell proporciona finalizaciones en la entrada para proporcionar sugerencias, habilitar la detección y acelerar la entrada. Los nombres de comandos, los nombres de parámetros, los valores de argumento y las rutas de archivos se pueden completar presionando la tecla Tab.
La tecla Tab es la combinación de teclas predeterminada en Windows.
PSReadLine también proporciona una MenuComplete
función enlazada a Ctrl+Space. La MenuComplete
función muestra una lista de finalizaciones coincidentes debajo de la línea de comandos.
Estas asignaciones de teclas se pueden cambiar mediante los cmdlets PSReadLine o la aplicación que hospeda PowerShell. Los enlaces de claves pueden ser diferentes en plataformas que no son de Windows. Para obtener más información, consulte about_PSReadLine_Functions.
Características de finalización de pestañas integradas
PowerShell ha habilitado la finalización de pestañas para muchos aspectos de la experiencia de la línea de comandos.
Finalización del nombre de archivo
Para rellenar automáticamente un nombre de archivo o una ruta de acceso desde las opciones disponibles, escriba parte del nombre y presione la tecla Tab. PowerShell expande automáticamente el nombre a la primera coincidencia que encuentra. Al presionar la tecla Tab de nuevo, se recorren todas las opciones disponibles con cada pulsación de tecla.
Finalización del nombre del comando y del parámetro
La expansión de pestañas de nombres de cmdlet es ligeramente diferente. Para usar la expansión de pestañas en un nombre de cmdlet, escriba la primera parte completa del nombre (verbo) y el guion que aparece detrás. Puede seguir rellenando el nombre para obtener una coincidencia parcial. Por ejemplo, si escribe get-co
y, a continuación, presiona la tecla Tab , PowerShell lo expande automáticamente al Get-Command
cmdlet (tenga en cuenta que también cambia el caso de letras a su formulario estándar). Si vuelve a presionar tecla Tab, PowerShell lo reemplaza por el único nombre del cmdlet coincidente, Get-Content
. La finalización de tabulación también funciona para resolver alias de PowerShell y ejecutables nativos.
En el gráfico siguiente se muestran ejemplos de finalización de pestañas y menús.
Otras mejoras de finalización de pestañas
Cada nueva versión de PowerShell incluye mejoras en la finalización de pestañas que corrigen errores y mejoran la facilidad de uso.
PowerShell 7.0
- La finalización de tabulación resuelve las asignaciones de variables que son enumeraciones o están restringidas de tipo.
- La función de completar con tabulación expande los cmdlets y funciones abreviadas. Por ejemplo,
i-psdf<tab>
devuelveImport-PowerShellDataFile
PowerShell 7.2
- Corrección de la finalización de pestañas para temas no localizados
about*
- Corregir el uso incorrecto de splatting tratado como parámetro posicional en autocompletado
- Añadir compleciones para palabras clave de ayuda basada en comentarios
- Adición de finalización de instrucciones
#Requires
- Agregar finalización de tabulación para parámetro View de
Format-*
cmdlets - Adición de compatibilidad con los completadores de argumentos basados en clases
PowerShell 7.3
- Corrección de la finalización de tabulación dentro del bloque de script especificado para
ValidateScriptAttribute
- Se ha agregado la finalización de tabulación para las etiquetas de bucle después
break
ycontinue
- Mejora de la finalización de tabla hash en varios escenarios
- Expansión de parámetros
-
Parámetro arguments para
Invoke-CimMethod
-
Parámetro FilterHashtable para
Get-WinEvent
- Parámetro de propiedad para los cmdlets CIM
- Elimina los duplicados de los escenarios de finalización de miembros.
- Compatibilidad con la finalización de barras diagonales en el recurso compartido de red (ruta de acceso UNC)
- Mejora de la finalización automática de miembros
- Priorizar el uso de completaciones en lugar de enumeraciones para parámetros
- Adición de compatibilidad con la inferencia de tipos para métodos genéricos con parámetros de tipo
- Mejora de la inferencia de tipos y finalizaciones
- Permite que los métodos se muestren en los resultados de finalización de
ForEach-Object -MemberName
- Impide la finalización de expresiones que devuelven void como (
[void]("")
) - Permite que los constructores de clase no predeterminados se muestren cuando la finalización de la clase se basa en el AST.
- Permite que los métodos se muestren en los resultados de finalización de
Otras formas de mejorar la finalización de tabulación de los parámetros de comando
La expansión de tabulación integrada se controla mediante la función interna TabExpansion o TabExpansion2. Es posible crear funciones o módulos que reemplacen el comportamiento predeterminado de estas funciones. Puede encontrar ejemplos en la Galería de PowerShell buscando la palabra clave TabExpansion .
Uso de los ValidateSet
atributos o ArgumentCompletions
con parámetros
El ArgumentCompletions
atributo permite agregar valores de finalización de tabulación a un parámetro específico.
El ArgumentCompletions
atributo es similar a ValidateSet
. Ambos atributos toman una lista de valores que se van a presentar cuando el usuario presiona Tab después del nombre del parámetro. Sin embargo, a diferencia de ValidateSet
, los valores no se validan.
Para obtener más información, consulte:
Uso del ArgumentCompleter
atributo o Register-ArgumentCompleter
con parámetros
Un completador de argumentos es un bloque de script o una función que proporciona finalización dinámica de tabulación para los valores de parámetro.
El ArgumentCompleter
atributo permite registrar una función que proporciona valores de finalización de tabulación para el parámetro . La función de completador de argumentos debe estar disponible para la función que contiene el parámetro con el ArgumentCompleter
atributo . Normalmente, la función se define en el mismo script o módulo.
Para obtener más información, vea ArgumentCompleter.
El Register-ArgumentCompleter
cmdlet registra un bloque de script como una función de completador de argumentos en tiempo de ejecución para cualquier comando que especifique. Esto le permite definir completadores de argumentos fuera del script o módulo o para comandos nativos. Para obtener más información, vea Register-ArgumentCompleter.
IntelliSense predictivo en PSReadLine
PSReadLine 2.1.0 introdujo la característica IntelliSense predictiva . IntelliSense predictivo proporciona sugerencias de comandos completos basados en elementos del historial de PSReadLine.
PSReadLine 2.2.2 amplía la potencia de IntelliSense predictivo agregando compatibilidad con módulos de complemento que usan lógica avanzada para proporcionar sugerencias para comandos completos. El módulo Az.Tools.Predictor fue el primer complemento para IntelliSense predictivo. Usa Machine Learning para predecir qué comando de Azure PowerShell desea ejecutar y los parámetros que desea usar.
Para obtener más información, consulte Uso de predictores.