Condividi tramite


Utilizzo del completamento con tab nella shell

PowerShell fornisce completamenti automatici dell'input per fornire suggerimenti, abilitare l'individuazione e accelerare l'inserimento dell'input. I nomi dei comandi, i nomi dei parametri, i valori degli argomenti e i percorsi di file possono essere completati premendo il tasto Tab.

Il tasto tab è l'associazione di tasti predefinita in Windows. PSReadLine fornisce anche una MenuComplete funzione associata a CTRL+SPACE. La MenuComplete funzione visualizza un elenco di completamenti corrispondenti sotto la riga di comando.

Questi tasti di scelta rapida possono essere modificati usando i cmdlet PSReadLine o l'applicazione che ospita PowerShell. I tasti di scelta rapida possono essere diversi su piattaforme diverse da Windows. Per altre informazioni, vedere about_PSReadLine_Functions.

Funzionalità di completamento automatico integrata

PowerShell ha abilitato il completamento delle schede per molti aspetti dell'esperienza della riga di comando.

Completamento del nome file

Per compilare automaticamente un nome file o un percorso dalle scelte disponibili, digitare parte del nome e premere il tasto Tab. PowerShell espande automaticamente il nome alla prima corrispondenza trovata. Premendo di nuovo il tasto Tab si scorre tutte le scelte disponibili ad ogni pressione del tasto.

Completamento dei nomi dei comandi e dei parametri

L'espansione della scheda dei nomi dei cmdlet è leggermente diversa. Per usare l'espansione tramite tabulazione in un nome di cmdlet, digitare l'intera prima parte del nome (verbo) e il trattino che lo segue. È possibile immettere più dettagli del nome per ottenere una corrispondenza parziale. Ad esempio, se si digita get-co e quindi si preme il tasto Tab, PowerShell lo espande automaticamente al Get-Command cmdlet. Si noti che cambia anche le lettere in maiuscolo e minuscolo nel formato standard. Se si preme il tasto Tab di nuovo, PowerShell lo sostituisce con l'unico altro nome di cmdlet corrispondente Get-Content. Il completamento tramite tabulazione funziona anche per risolvere gli alias di PowerShell e i file eseguibili nativi.

La figura seguente mostra esempi di tabulazione e completamento del menu.

Esempi di completamento di tabulazioni e menu

Altri miglioramenti al completamento automatico delle schede di navigazione

Ogni nuova versione di PowerShell include miglioramenti al completamento della scheda che corregge i bug e migliora l'usabilità.

PowerShell 7.0

  • Il completamento tramite tabulazione risolve le assegnazioni di variabili che sono enumerazioni o sono vincolate dal tipo
  • Il completamento tramite tabulazione espande i cmdlet e le funzioni abbreviati. Ad esempio, restituisce i-psdf<tab>Import-PowerShellDataFile

PowerShell 7.2

  • Correzione del completamento della scheda per gli argomenti non localizzati about*
  • Correzione dello splatting considerato come parametro posizionale nei completamenti
  • Aggiungere completamenti per le parole chiave della Guida basata su commenti
  • Aggiungere il completamento delle istruzioni per #Requires.
  • Aggiungere il completamento della scheda per il parametro View dei cmdlet di Format-*
  • Aggiunta del supporto per i completer di argomenti basati su classi

PowerShell 7.3

  • Correzione del completamento della scheda all'interno del blocco di script specificato per ValidateScriptAttribute
  • Aggiunta del completamento tramite il tasto tab per le etichette del ciclo successivamente a break e continue
  • Migliorare il completamento della tabella hash in più scenari
    • Splatting dei parametri
    • Parametro arguments per Invoke-CimMethod
    • Parametro FilterHashtable per Get-WinEvent
    • Parametro della proprietà per i cmdlet CIM
    • Rimuove i duplicati dagli scenari di completamento dei membri
  • Supportare le barre diagonali nel completamento della condivisione di rete (percorso UNC)
  • Migliorare la funzione di completamento automatico per i membri
  • Assegnare ValidateSet priorità ai completamenti rispetto alle enumerazioni per i parametri
  • Aggiungere il supporto dell'inferenza dei tipi per i metodi generici con parametri di tipo
  • Migliorare l'inferenza sui tipi e i completamenti
    • Consente di visualizzare i metodi nei risultati di completamento per ForEach-Object -MemberName
    • Impedisce il completamento delle espressioni che restituiscono void come ([void](""))
    • Consente la visualizzazione dei costruttori di classe non predefiniti quando il completamento della classe è basato su AST

Altri modi per migliorare il completamento tramite tabulazione dei parametri dei comandi

L'espansione delle tabulazioni integrata è controllata dalla funzione interna TabExpansion o TabExpansion2. È possibile creare funzioni o moduli che sostituiscono il comportamento predefinito di queste funzioni. È possibile trovare esempi in PowerShell Gallery cercando la parola chiave TabExpansion .

Uso degli ValidateSet attributi o ArgumentCompletions con i parametri

L'attributo ArgumentCompletions consente di aggiungere valori di completamento automatico tramite tabulazione a un parametro specifico. L'attributo ArgumentCompletions è simile a ValidateSet. Entrambi gli attributi accettano un elenco di valori da presentare quando l'utente preme TAB dopo il nome del parametro. Tuttavia, a differenza ValidateSetdi , i valori non vengono convalidati.

Per altre informazioni, vedere:

Uso dell'attributo ArgumentCompleter o Register-ArgumentCompleter con parametri

Un completore di argomenti è un blocco di script o una funzione che fornisce il completamento automatico dinamico per i valori dei parametri.

L'attributo ArgumentCompleter consente di registrare una funzione che fornisce valori di completamento automatico tramite tab per il parametro. La funzione di completamento dell'argomento deve essere disponibile per la funzione che contiene il parametro con l'attributo ArgumentCompleter. In genere, la funzione viene definita nello stesso script o modulo.

Per altre informazioni, vedere ArgumentCompleter.

Il Register-ArgumentCompleter cmdlet registra un blocco di script come funzione di completamento dell'argomento in fase di esecuzione per qualsiasi comando specificato. In questo modo è possibile definire i completer di argomenti al di fuori dello script o del modulo oppure per comandi nativi. Per altre informazioni, vedere Register-ArgumentCompleter.

IntelliSense predittivo in PSReadLine

PSReadLine 2.1.0 ha introdotto la funzionalità DitelliSense predittiva . IntelliSense predittivo fornisce suggerimenti per comandi completi basati sugli elementi della cronologia di PSReadLine.

PSReadLine 2.2.2 estende la potenza di Predictive IntelliSense aggiungendo il supporto per i moduli plug-in che usano la logica avanzata per fornire suggerimenti per i comandi completi. Il modulo Az.Tools.Predictor è stato il primo plug-in per Predictive IntelliSense. Usa Machine Learning per stimare il comando di Azure PowerShell che si vuole eseguire e i parametri da usare.

Per altre informazioni, vedere Uso di predittori.