about_Tab_Expansion
Descripción breve
PowerShell proporciona finalizaciones en la entrada para proporcionar sugerencias, habilitar la detección y acelerar la entrada. Los nombres de comandos y parámetros, los valores de argumento y las rutas de acceso de archivo se pueden completar al presionar la tecla Tab.
Descripción larga
La expansión de tabulación se controla mediante la función interna TabExpansion2. Puesto que esta función se puede modificar o reemplazar, este artículo es una guía para el comportamiento de la configuración predeterminada de PowerShell.
El comportamiento de expansión de tabulación también se puede modificar mediante la característica IntelliSense predictiva del módulo PSReadLine. Para más información, consulte IntelliSense predictivo.
La tecla Tab es el enlace de teclado predeterminado en Windows. Puede cambiar el enlace de claves mediante el módulo PSReadLine o la aplicación que hospeda PowerShell. El enlace de claves es diferente en plataformas que no son de Windows. Para más información, vea Acerca de PSReadLine.
Nota:
Una limitación del proceso de expansión de pestañas es que las pestañas se interpretan siempre como intentos de completar una palabra. Si copia y pega ejemplos de comandos en una consola de PowerShell, asegúrese de que el ejemplo no contiene pestañas. Si lo hace, los resultados serán impredecibles y casi sin duda no serán lo que pretende.
Finalización del nombre del archivo y del cmdlet
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 expandirá automáticamente el nombre a la primera coincidencia que encuentre. Al presionar la tecla Tab repetidamente se recorren todas las opciones disponibles.
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 presiona la tecla Tab , PowerShell lo expande automáticamente al Get-Command
cmdlet . Observe que también cambia el caso de letras a su forma estándar. Si vuelve a presionar la tecla de tabulación, PowerShell lo reemplazará por el otro único nombre de cmdlet coincidente, Get-Content
.
Nota:
A partir de PowerShell 7.0, Tab también expande cmdlets y funciones abreviados. Por ejemplo, i-psdf<tab>
devuelve Import-PowerShellDataFile
.
La finalización de tabulación también funciona para resolver alias de PowerShell y ejecutables nativos.
Puede usar la expansión de pestañas repetidamente en la misma línea. Por ejemplo, puede usar la expansión de pestañas en el nombre del cmdlet Get-Content
especificando lo siguiente:
Ejemplos
PS> Get-Con<Tab>
Cuando se presiona la tecla Tab, el comando se expande a:
PS> Get-Content
Luego, puede especificar parcialmente la ruta de acceso al archivo de registro de instalación activa y volver a usar la expansión de pestañas:
PS> Get-Content c:\windows\acts<Tab>
Cuando se presiona la tecla Tab, el comando se expande a:
PS> Get-Content C:\windows\actsetup.log
PSReadLine también tiene una característica de finalización del menú. El enlace de teclas predeterminado en Windows es Ctrl+Espacio.
PS> fore<Ctrl-Space>
Al presionar Ctrl+Espacio, PowerShell presenta la lista completa de valores coincidentes como un menú:
PS> foreach
foreach ForEach-Object foreach.cmd
En este ejemplo, la cadena "fore" coincide con foreach
(alias de PowerShell), ForEach-Object
(cmdlet) y foreach.cmd
(comando nativo). Use las teclas de dirección para seleccionar el valor que desee.
Finalización del argumento de parámetro
La finalización de tabulación también puede funcionar para completar argumentos de parámetro. Puede usar la tecla Tab para recorrer una lista de valores posibles que son válidos para algún parámetro. Para obtener más información, consulte about_Functions_Argument_Completion.
Finalización de valores enumerados
PowerShell 7.0 agregó compatibilidad con la finalización de tabulaciones de enumeraciones. Puede usar la finalización de tabulación para seleccionar el valor que desea en cualquier lugar en el que use una enumeración. Por ejemplo:
enum Suits {
Clubs = 0
Diamonds = 1
Hearts = 2
Spades = 3
}
[Suits]$suit = 'c<Tab>
Los valores enumerados son cadenas, por lo que el valor que se va a completar debe comenzar con un carácter de comillas simples o dobles.
Al pulsar la tecla Tab , obtendrá los siguientes resultados:
[Suits]$suit = 'Clubs'
La finalización de tabulación también funciona con enumeraciones de .NET.
[System.IO.FileAttributes]$attr = 'S<Tab><Tab>
Al presionar la tecla Tab dos veces, se recorren los dos valores que comienzan por la letra S
. El resultado final es:
[System.IO.FileAttributes]$attr = 'System'
A partir de PowerShell 7.0, se agregó la expansión de tabulación para los valores de ValidateSet
al asignar a una variable. Por ejemplo, si estaba escribiendo la siguiente definición de variable:
[ValidateSet('Chocolate', 'Strawberry', 'Vanilla')]
[string]$flavor = 'Strawberry'
$flavor = <tab>
Al pulsar la tecla Tab , obtendrá el siguiente resultado:
$flavor = 'Chocolate'
Finalizaciones de tabulación para palabras clave basadas en comentarios
A partir de PowerShell 7.2, se agregó compatibilidad con la finalización de tabulación de los #requires
parámetros y las palabras clave para la ayuda basada en comentarios.
Ejemplo de instrucción #requires
#requires -<Ctrl-Space>
La expansión del menú muestra las siguientes opciones de parámetro:
#requires -<Ctrl-Space>
Modules PSEdition RunAsAdministrator Version
Ejemplo de ayuda basada en comentarios
<#
.<Ctrl-Space>
La expansión del menú muestra las siguientes opciones de palabra clave:
<#
.COMPONENT
COMPONENT EXTERNALHELP FUNCTIONALITY NOTES REMOTEHELPRUNSPACE
DESCRIPTION FORWARDHELPCATEGORY INPUTS OUTPUTS ROLE
EXAMPLE FORWARDHELPTARGETNAME LINK PARAMETER SYNOPSIS