about_Tab_Expansion

Descrição breve

O PowerShell fornece preenchimentos de entrada para fornecer dicas, habilitar a descoberta e acelerar a entrada de informações. Nomes de comando, nomes de parâmetros, valores de argumento e caminhos de arquivo podem ser preenchidos pressionando a tecla Tab.

Descrição longa

A expansão de guias é controlada pela função interna TabExpansion2. Como essa função pode ser modificada ou substituída, essa discussão é um guia para o comportamento da configuração padrão do PowerShell.

O comportamento de expansão da guia também pode ser modificado pelo recurso IntelliSense preditivo do módulo PSReadLine. Para obter mais informações, consulte IntelliSense preditivo.

A tecla Tab é a associação de teclas padrão no Windows. Você pode alterar a vinculação de chave usando o módulo PSReadLine ou o aplicativo que está hospedando o PowerShell. A associação de chaves é diferente em plataformas que não sejam Windows. Para obter mais informações, confira about_PSReadLine.

Observação

Uma limitação do processo de expansão de guia é que as guias são sempre interpretadas como tentativas de preencher uma palavra. Se você copiar e colar exemplos de comando em um console do PowerShell, verifique se o exemplo não contém guias. Se isso acontecer, os resultados serão imprevisíveis e quase certamente não serão os que você pretendia.

Conclusão do nome do arquivo e do cmdlet

Para preencher automaticamente um nome de arquivo ou um caminho com as opções disponíveis automaticamente, digite parte do nome e pressione a tecla Tab. O PowerShell expande automaticamente o nome para a primeira correspondência que encontra. Pressionar a tecla Tab repetidamente percorre todas as opções disponíveis.

A expansão com Tab de nomes de cmdlet é ligeiramente diferente. Para usar a expansão com Tab em um nome de cmdlet, digite a primeira parte inteira do nome (o verbo) e o hífen que o segue. Você pode preencher mais do mesmo nome de uma correspondência parcial. Por exemplo, se você digitar get-co e pressionar a tecla Tab, o PowerShell expandirá automaticamente isso para o Get-Command cmdlet. Observe que ele também muda o caso das letras para sua forma padrão. Se você pressionar a tecla Tab novamente, o PowerShell substitui isso pelo outro único nome de cmdlet correspondente, Get-Content.

Observação

A partir do PowerShell 7.0, o Tab também expande cmdlets e funções abreviados. Por exemplo, i-psdf<tab> retorna Import-PowerShellDataFile.

A conclusão de tabulação também funciona para resolver alias do PowerShell e executáveis nativos.

Você pode usar a expansão com Tab várias vezes na mesma linha. Por exemplo, você pode usar a expansão de guias no nome do cmdlet Get-Content digitando:

Exemplos

PS> Get-Con<Tab>

Quando você pressiona a tecla Tab, o comando se expande para:

PS> Get-Content

Você pode especificar parcialmente o caminho para o arquivo de log Active Setup e usar a expansão com Tab novamente:

PS> Get-Content c:\windows\acts<Tab>

Quando você pressiona a tecla Tab, o comando se expande para:

PS> Get-Content C:\windows\actsetup.log

PSReadLine também tem um recurso de conclusão de menu. A associação de chave padrão no Windows é Ctrl+Space.

PS> fore<Ctrl-Space>

Quando você pressiona Ctrl+Espaço, o PowerShell apresenta a lista completa de valores correspondentes como um menu:

PS> foreach
foreach         ForEach-Object  foreach.cmd

Neste exemplo, a cadeia de caracteres 'fore' é correspondida a foreach (alias do PowerShell), ForEach-Object (cmdlet) e foreach.cmd (comando nativo). Use as teclas de seta para selecionar o valor desejado.

Conclusão do argumento do parâmetro

A conclusão de tabulação também pode funcionar para concluir argumentos de parâmetro. Você pode usar a tecla Tab para percorrer uma lista de valores possíveis que são válidos para algum parâmetro. Para obter mais informações, consulte about_Functions_Argument_Completion.

Conclusão de valor enumerado

O PowerShell 7.0 adicionou suporte para conclusão de guias de enums. Você pode usar a conclusão de tabulação para selecionar o valor desejado em qualquer lugar que você use um enum. Por exemplo:

enum Suits {
    Clubs = 0
    Diamonds = 1
    Hearts = 2
    Spades = 3
}

[Suits]$suit = 'c<Tab>

Os valores enumerados são cadeias de caracteres, portanto, o valor a ser concluído deve começar com um caractere de aspas simples ou duplas.

Quando você pressiona a tecla Tab , você obtém os seguintes resultados:

[Suits]$suit = 'Clubs'

A conclusão de tabulação também funciona com enumerações .NET.

[System.IO.FileAttributes]$attr = 'S<Tab><Tab>

Pressionar a tecla Tab duas vezes percorre os dois valores que começam com a letra S. O resultado final é:

[System.IO.FileAttributes]$attr = 'System'

A partir do PowerShell 7.0, a expansão de guias foi adicionada para os valores de ValidateSet ao atribuir a uma variável. Por exemplo, se você estivesse digitando a seguinte definição de variável:

[ValidateSet('Chocolate', 'Strawberry', 'Vanilla')]
[string]$flavor = 'Strawberry'
$flavor = <tab>

Quando você pressiona a tecla Tab , você obteria o seguinte resultado:

$flavor = 'Chocolate'

Conclusão de tabulação para palavras-chave baseadas em comentários

A partir do PowerShell 7.2, foi adicionado suporte para conclusão de guias dos #requires parâmetros e palavras-chave para ajuda baseada em comentários.

Exemplo para #requires instrução

#requires -<Ctrl-Space>

A expansão do menu mostra as seguintes opções de parâmetro:

#requires -<Ctrl-Space>
Modules     PSEdition     RunAsAdministrator    Version

Exemplo de ajuda baseada em comentários

<#
    .<Ctrl-Space>

A expansão do menu mostra as seguintes opções de palavra-chave:

 <#
    .COMPONENT
COMPONENT      EXTERNALHELP           FUNCTIONALITY     NOTES         REMOTEHELPRUNSPACE
DESCRIPTION    FORWARDHELPCATEGORY    INPUTS            OUTPUTS       ROLE
EXAMPLE        FORWARDHELPTARGETNAME  LINK              PARAMETER     SYNOPSIS

Confira também