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 da guia é 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 de 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 associação de teclas usando o módulo PSReadLine ou o aplicativo que está hospedando o PowerShell. A associação de teclas é diferente em plataformas não 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 o que você pretendia.
Conclusão de nome de arquivo e 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.
Quando o caractere til (~
) aparece no início de um caminho, o PowerShell o interpreta como o diretório base do usuário. Essa interpretação é comum em sistemas Linux e macOS. No entanto, muitos comandos nativos no Windows não usam essa interpretação. A partir do PowerShell 7.5-preview.3 no Windows, o caractere til é caractere é expandido para $HOME
quando se usa o preenchimento de tabulação.
Esta expansão funciona com comandos nativos do Windows.
Conclusão do nome do cmdlet
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á isso automaticamente para o Get-Command
cmdlet. Observe que ele também muda o caso das cartas 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, Tab também expande cmdlets e funções abreviados. Por exemplo, i-psdf<tab>
retorna Import-PowerShellDataFile
.
O preenchimento de tabulação também funciona para resolver o 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
O PSReadLine também possui um recurso de conclusão de menu. A associação de teclas 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
O preenchimento de tabulação também pode funcionar para completar 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 preenchimento de tabulação de enumerações. Você pode usar o preenchimento de tabulação para selecionar o valor desejado em qualquer lugar em que usar uma enumeração. 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.
Ao pressionar a tecla Tab , você obtém os seguintes resultados:
[Suits]$suit = 'Clubs'
O preenchimento de tabulação também funciona com enumerações do .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ê estava digitando a seguinte definição de variável:
[ValidateSet('Chocolate', 'Strawberry', 'Vanilla')]
[string]$flavor = 'Strawberry'
$flavor = <tab>
Ao pressionar a tecla Tab , você obterá o seguinte resultado:
$flavor = 'Chocolate'
Preenchimento de tabulação para palavras-chave baseadas em comentários
A partir do PowerShell 7.2, foi adicionado suporte para preenchimento de tabulação dos #requires
parâmetros e das palavras-chave para ajuda baseada em comentários.
Exemplo de #requires
instrução
#requires -<Ctrl-Space>
A expansão do menu mostra as seguintes opções de parâmetros:
#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 palavras-chave:
<#
.COMPONENT
COMPONENT EXTERNALHELP FUNCTIONALITY NOTES REMOTEHELPRUNSPACE
DESCRIPTION FORWARDHELPCATEGORY INPUTS OUTPUTS ROLE
EXAMPLE FORWARDHELPTARGETNAME LINK PARAMETER SYNOPSIS