Uso del completamento tramite tabulazione nella shell
PowerShell fornisce completamenti all'input per fornire suggerimenti, abilitare l'individuazione e velocizzare la voce di input. I nomi dei comandi, i nomi dei parametri, i valori degli argomenti e i percorsi dei file possono essere completati premendo tabulazioni.
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 nelle piattaforme non Windows. Per altre informazioni, vedere about_PSReadLine_Functions.
Funzionalità di completamento schede predefinite
PowerShell ha abilitato il completamento delle schede per molti aspetti dell'esperienza della riga di comando.
Completamento del nome file
Per immettere automaticamente un nome di file o un percorso usando le scelte disponibili, digitare parte del nome e premere TAB. PowerShell espande automaticamente il nome alla prima corrispondenza trovata. Premendo di nuovo tabulazioni si scorre tutte le scelte disponibili con ogni tasto premuto.
Completamento dei nomi dei comandi e dei parametri
L'espansione tramite TAB dei nomi di cmdlet è leggermente diversa. Per usare l'espansione tramite TAB per un nome di cmdlet, digitare per intero la prima parte del nome (il verbo) e il trattino che segue. È possibile immettere anche una parte più lunga del nome per ottenere una corrispondenza parziale. Ad esempio, se si digita get-co
e quindi si preme tabulazione, PowerShell lo espande automaticamente al Get-Command
cmdlet . Si noti che cambia anche la combinazione di lettere maiuscole e minuscole nel formato standard. Se si preme di nuovo TAB, PowerShell lo sostituisce con l'unico altro nome di cmdlet corrispondente, ossia 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.
Altri miglioramenti al completamento delle schede
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 per
#requires
le istruzioni - Aggiungere il completamento della scheda per il parametro View dei
Format-*
cmdlet - 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 tabulazione per le etichette del ciclo dopo
break
econtinue
- 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
- Supporto delle barre nel completamento della condivisione di rete (percorso UNC)
- Migliorare il completamento automatico dei 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 e i completamenti dei tipi
- 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
- Consente di visualizzare i metodi nei risultati di completamento per
Altri modi per migliorare il completamento tramite tabulazione dei parametri dei comandi
L'espansione della scheda predefinita è 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 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 ValidateSet
di , i valori non vengono convalidati.
Per altre informazioni, vedi:
Uso dell'attributo ArgumentCompleter
o Register-ArgumentCompleter
con parametri
Un completore di argomenti è un blocco di script o una funzione che fornisce il completamento a schede dinamiche per i valori dei parametri.
L'attributo ArgumentCompleter
consente di registrare una funzione che fornisce valori di completamento tramite tabulazione per il parametro . La funzione completer dell'argomento deve essere disponibile per la funzione contenente 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 all'esterno dello script o del modulo o per i 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 i comandi completi in base agli elementi della cronologia 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 predictor.