Usando o preenchimento com tabulação no shell
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.
A tecla Tab é a associação de teclas padrão no Windows. PSReadLine também fornece uma função MenuComplete
associada aa Ctrl+Espaço. A função MenuComplete
exibe uma lista de preenchimentos correspondentes abaixo da linha de comando.
Essas associações de teclas podem ser alteradas usando cmdlets PSReadLine ou o aplicativo que está hospedando o PowerShell. As associações de teclas podem ser diferentes em plataformas que não são do Windows. Para obter mais informações, consulte about_PSReadLine_Functions.
Recursos internos de preenchimento com tabulação
O PowerShell habilitou o preenchimento com tabulação para muitos aspectos da experiência da linha de comando.
Preenchimento de nome de arquivo
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 novamente percorre todas as opções disponíveis com cada pressionamento da tecla.
Preenchimento de nome de parâmetro e comando
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 o expandirá automaticamente para o cmdlet Get-Command
(observe que ele também altera as letras maiúsculas e minúsculas 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
. O preenchimento com tabulação também funciona para resolver aliases e executáveis nativos do PowerShell.
O gráfico a seguir mostra exemplos de preenchimento de menu e guia.
Outros aprimoramentos de preenchimento com tabulação
Cada nova versão do PowerShell inclui aprimoramentos no preenchimento com tabulação que corrigem bugs e aprimoram a usabilidade.
PowerShell 7.0
- O preenchimento com tabulação resolve atribuições de variáveis que são enumerações ou são restritas por tipo
- O preenchimento com tabulação expande cmdlets e funções abreviadas. Por exemplo,
i-psdf<tab>
retornaImport-PowerShellDataFile
PowerShell 7.2
- Corrigir o preenchimento com tabulação para tópicos não localizados sobre
about*
- Corrigir o posicionamento que está sendo tratado como parâmetro posicional nos preenchimentos
- Adicionar preenchimentos para palavras-chave de ajuda baseadas em comentário
- Adicionar preenchimento para instruções
#requires
- Adicionar o preenchimento com tabulação para o parâmetro View dos cmdlets
Format-*
- Adicionar suporte para concluidores de argumentos baseados em classe
PowerShell 7.3
- Corrigir o preenchimento com tabulação dentro do bloco de script especificado para o
ValidateScriptAttribute
- Adicionado o preenchimento com tabulação para rótulos após
break
econtinue
- Aprimorar o preenchimento da Tabela de Hash em vários cenários
- Nivelamento de parâmetro
- Parâmetro Arguments para
Invoke-CimMethod
- Parâmetro FilterHashtable para
Get-WinEvent
- Parâmetro Property para os cmdlets CIM
- Remove duplicatas de cenários de conclusão de membro
- Dar suporte a barras no preenchimento do compartilhamento de rede (caminho UNC)
- Aprimorar o preenchimento automático do membro
- Priorizar preenchimentos de
ValidateSet
em enumerações para parâmetros - Adicionar suporte à inferência de tipos para métodos genéricos com parâmetros de tipo
- Aprimorar a inferência e os preenchimentos de tipos
- Permite que os métodos sejam mostrados nos resultados de conclusão para
ForEach-Object -MemberName
- Impede o preenchimento em expressões que retornam void, como (
[void]("")
) - Permite que construtores de classe não padrão apareçam quando a conclusão da classe é baseada no AST
- Permite que os métodos sejam mostrados nos resultados de conclusão para
Outras maneiras de aprimorar o preenchimento com tabulação de parâmetros de comando
A expansão da guia embutida é controlada pela função interna TabExpansion ou TabExpansion2. É possível criar funções ou módulos que substituem o comportamento padrão dessas funções. Você pode encontrar exemplos na Galeria do PowerShell pesquisando a palavra-chave TabExpansion.
Usando os atributos ValidateSet
ou ArgumentCompletions
com parâmetros
O atributo ArgumentCompletions
permite adicionar valores de preenchimento com tabulação a um parâmetro específico.
O atributo ArgumentCompletions
é semelhante a ValidateSet
. Ambos os atributos utilizam uma lista de valores a serem apresentados quando o usuário pressiona Tab após o nome do parâmetro. No entanto, diferente de ValidateSet
, os valores não são validados.
Para obter mais informações, veja:
Usando o atributo ArgumentCompleter
ou Register-ArgumentCompleter
com parâmetros
Um preenchedor de argumentos é um bloco de script ou uma função que fornece preenchimento com tabulação dinâmico para valores de parâmetro.
O atributo ArgumentCompleter
permite que você registre uma função que fornece valores de preenchimento com tabulação para o parâmetro. A função de preenchimento de argumento precisa estar disponível para a função que contém o parâmetro com o atributo ArgumentCompleter
. Normalmente, a função é definida no mesmo script ou módulo.
Para obter mais informações, consulte ArgumentCompleter.
O cmdlet Register-ArgumentCompleter
registra um bloco de script como uma função de preenchimento de argumento em tempo de execução para qualquer comando especificado. Isso permite que você defina preenchedores de argumento fora do script ou do módulo ou para comandos nativos. Para obter mais informações, consulte Register-ArgumentCompleter.
IntelliSense Preditivo em PSReadLine
O PSReadLine 2.1.0 apresentou o recurso de IntelliSense Preditivo. O IntelliSense Preditivo fornece sugestões para comandos completos com base em itens do histórico do PSReadLine.
O PSReadLine 2.2.2 estende a potência do IntelliSense Preditivo adicionando suporte para módulos de plug-in que usam lógica avançada para fornecer sugestões para comandos completos. O módulo Az.Tools.Predictor foi o primeiro plug-in do IntelliSense Preditivo. Ele usa o Machine Learning para prever qual comando do Azure PowerShell você deseja executar e os parâmetros que deseja usar.
Para mais informações, consulte Usando preditores.