Partilhar via


Usando o preenchimento de tabulação no shell

O PowerShell fornece conclusões na entrada para fornecer dicas, habilitar a descoberta e acelerar a entrada de entrada. Nomes de comandos, nomes de parâmetros, valores de argumento e caminhos de arquivo podem ser concluídos pressionando a tecla Tab .

A tecla Tab é a ligação de tecla padrão no Windows. PSReadLine também fornece uma MenuComplete função que está ligada ao Ctrl+Space. A MenuComplete função exibe uma lista de completações correspondentes abaixo da linha de comando.

Essas ligações de chave podem ser alteradas usando cmdlets PSReadLine ou o aplicativo que está hospedando o PowerShell. As ligações de teclas podem ser diferentes em plataformas que não sejam Windows. Para obter mais informações, consulte about_PSReadLine_Functions.

Recursos internos de preenchimento de guias

O PowerShell habilitou o preenchimento de guias para muitos aspetos da experiência da linha de comando.

Conclusão do nome do ficheiro

Para preencher um nome de arquivo ou caminho a partir das 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 encontrada. Pressionar a tecla Tab novamente percorre todas as opções disponíveis a cada pressionamento de tecla.

Conclusão do nome do comando e do parâmetro

A expansão da guia de nomes de cmdlets é ligeiramente diferente. Para usar a expansão de tabulação em um nome de cmdlet, digite toda a primeira parte do nome (o verbo) e o hífen que o segue. Você pode preencher mais do nome para 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 altera as maiúsculas e minúsculas das letras para seu formulário padrão). Se você pressionar a tecla Tab novamente, o PowerShell substituirá isso pelo único outro nome de cmdlet correspondente, Get-Content. A conclusão da guia também funciona para resolver aliases do PowerShell e executáveis nativos.

O gráfico a seguir mostra exemplos de preenchimento de guias e menus.

Exemplos de conclusão de tabulações e menus

Outros aprimoramentos de conclusão de guia

Cada nova versão do PowerShell inclui melhorias no preenchimento de guias que corrigem bugs e melhoram a usabilidade.

PowerShell 7.0

  • A conclusão de tabulação resolve atribuições variáveis que são enums ou são restritas a tipos
  • A conclusão de tabulação expande cmdlets e funções abreviados. Por exemplo, i-psdf<tab> devoluções Import-PowerShellDataFile

PowerShell 7.2

  • Corrigir preenchimento de guias para tópicos não localizados about*
  • Corrigir splatting sendo tratado como parâmetro posicional em completações
  • Adicionar conclusões para palavras-chave da Ajuda baseada em comentários
  • Adicionar conclusão para #requires instruções
  • Adicionar conclusão de guia para o parâmetro View de Format-* cmdlets
  • Adicionar suporte para completadores de argumentos baseados em classe

PowerShell 7.3

  • Corrigir o preenchimento da guia dentro do bloco de script especificado para o ValidateScriptAttribute
  • Adicionado preenchimento de guias para rótulos de loop após break e continue
  • Melhore a conclusão do Hashtable em vários cenários
    • Splatting de parâmetros
    • Parâmetro Arguments para Invoke-CimMethod
    • Parâmetro FilterHashtable para Get-WinEvent
    • Parâmetro de propriedade para os cmdlets CIM
    • Remove duplicatas de cenários de conclusão de membros
  • Suporte a barras avançadas na conclusão do compartilhamento de rede (caminho UNC)
  • Melhorar o preenchimento automático de membros
  • Priorizar ValidateSet finalizações em vez de enums para parâmetros
  • Adicionar suporte de inferência de tipo para métodos genéricos com parâmetros de tipo
  • Melhorar a inferência de tipo e as conclusões
    • Permite que os métodos sejam mostrados nos resultados de conclusão para ForEach-Object -MemberName
    • Impede a conclusão 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

Outras maneiras de melhorar a conclusão da guia de parâmetros de comando

A expansão de separador incorporada é controlada pela função interna TabExpansion ou TabExpansion2. É possível criar funções ou módulos que substituam o comportamento padrão dessas funções. Você pode encontrar exemplos na Galeria do PowerShell pesquisando a palavra-chave TabExpansion .

Usando os ValidateSet atributos ou ArgumentCompletions com parâmetros

O ArgumentCompletions atributo permite adicionar valores de conclusão de tabulação a um parâmetro específico. O ArgumentCompletions atributo é semelhante a ValidateSet. Ambos os atributos usam uma lista de valores a serem apresentados quando o usuário pressiona Tab após o nome do parâmetro. No entanto, ao contrário ValidateSetdo , os valores não são validados.

Para obter mais informações, consulte:

Usando o ArgumentCompleter atributo ou Register-ArgumentCompleter com parâmetros

Um preenchedor de argumento é um bloco de script ou função que fornece preenchimento dinâmico de guias para valores de parâmetro.

O ArgumentCompleter atributo permite que você registre uma função que fornece valores de conclusão de tabulação para o parâmetro. A função de preenchimento de argumento deve estar disponível para a função que contém o parâmetro com o ArgumentCompleter atributo. Normalmente, a função é definida no mesmo script ou módulo.

Para obter mais informações, consulte ArgumentCompleter.

O Register-ArgumentCompleter cmdlet registra um bloco de script como uma função de conclusão de argumento em tempo de execução para qualquer comando especificado. Isso permite que você defina completadores de argumento fora do script ou módulo ou para comandos nativos. Para obter mais informações, consulte Register-ArgumentCompleter.

IntelliSense preditivo no PSReadLine

O PSReadLine 2.1.0 introduziu o recurso Predictive IntelliSense . O IntelliSense preditivo fornece sugestões para comandos completos com base em itens do seu histórico PSReadLine .

O PSReadLine 2.2.2 amplia o poder do Predictive IntelliSense 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 para o Predictive IntelliSense. Ele usa o Aprendizado de Máquina para prever qual comando do Azure PowerShell você deseja executar e os parâmetros que deseja usar.

Para obter mais informações, consulte Usando preditores.