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

Consulte también