Condividi tramite


about_Tab_Expansion

Descrizione breve

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.

Descrizione lunga

L'espansione tramite tabulazione è controllata dalla funzione interna TabExpansion2. Poiché questa funzione può essere modificata o sottoposta a override, le informazioni seguenti sono da intendersi come una guida al comportamento della configurazione predefinita di PowerShell.

Il comportamento dell'espansione tramite tabulazioni può essere modificato anche dalla funzionalità IntelliSense predittiva del modulo PSReadLine. Per altre informazioni, vedere IntelliSense predittivo.

Il tasto TAB è l'associazione di tasti predefinita in Windows. È possibile modificare il tasto di scelta rapida usando il modulo PSReadLine o l'applicazione che ospita PowerShell. Il tasto di scelta rapida è diverso nelle piattaforme non Windows. Per altre informazioni, vedere about_PSReadLine.

Nota

Uno dei limiti del processo di espansione dei nomi tramite TAB è che le pressioni di TAB vengono sempre interpretate come il tentativo di completare una parola. Se si copiano e incollano esempi di comandi in una console di PowerShell, assicurarsi che l'esempio non contenga schede. In caso affermativo, i risultati saranno imprevedibili e quasi certamente non saranno quelli desiderati.

Completamento del nome del file e del cmdlet

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 ripetutamente tabulazioni si scorre tutte le opzioni disponibili.

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 il caso delle lettere nel formato standard. Se si preme di nuovo TAB, PowerShell lo sostituisce con l'unico altro nome di cmdlet corrispondente, ossia Get-Content.

Nota

A partire da PowerShell 7.0, Tab espande anche i cmdlet e le funzioni abbreviati. Ad esempio i-psdf<tab> restituisce Import-PowerShellDataFile.

Il completamento tramite tabulazione funziona anche per risolvere gli alias di PowerShell e i file eseguibili nativi.

È possibile usare l'espansione dei nomi tramite TAB più volte sulla stessa riga. Ad esempio, è possibile usare l'espansione tramite TAB per il nome del cmdlet Get-Content immettendo:

Esempi

PS> Get-Con<Tab>

Quando si preme TAB, il comando viene espanso in:

PS> Get-Content

È quindi possibile specificare parzialmente il percorso del file di log di installazione (Active Setup) e usare nuovamente la sostituzione tramite TAB:

PS> Get-Content c:\windows\acts<Tab>

Quando si preme TAB, il comando viene espanso in:

PS> Get-Content C:\windows\actsetup.log

PSReadLine include anche una funzionalità di completamento del menu. L'associazione di tasti predefinita in Windows è CTRL+SPAZIATRICE.

PS> fore<Ctrl-Space>

Quando si preme CTRL+SPAZIATRICE, PowerShell visualizza l'elenco completo dei valori corrispondenti come menu:

PS> foreach
foreach         ForEach-Object  foreach.cmd

In questo esempio la stringa 'fore' corrisponde a foreach (alias di PowerShell), ForEach-Object (cmdlet) e foreach.cmd (comando nativo). Usare i tasti di direzione per selezionare il valore desiderato.

Completamento dell'argomento del parametro

Il completamento tramite tabulazione può anche funzionare per completare gli argomenti dei parametri. È possibile usare il tasto TAB per scorrere un elenco di valori possibili validi per alcuni parametri. Per altre informazioni, vedere about_Functions_Argument_Completion.

Completamento dei valori enumerati

PowerShell 7.0 ha aggiunto il supporto per il completamento tramite tabulazione delle enumerazioni. È possibile usare il completamento tramite tabulazione per selezionare il valore desiderato ovunque si usi un'enumerazione. Ad esempio:

enum Suits {
    Clubs = 0
    Diamonds = 1
    Hearts = 2
    Spades = 3
}

[Suits]$suit = 'c<Tab>

I valori enumerati sono stringhe, pertanto il valore da completare deve iniziare con un carattere virgolette singole o doppie.

Quando si preme tabulazioni, si ottengono i risultati seguenti:

[Suits]$suit = 'Clubs'

Il completamento tramite tabulazione funziona anche con le enumerazioni .NET.

[System.IO.FileAttributes]$attr = 'S<Tab><Tab>

Se si preme tabulazioni due volte, i due valori iniziano con la lettera S. Il risultato finale è:

[System.IO.FileAttributes]$attr = 'System'

A partire da PowerShell 7.0, l'espansione della scheda è stata aggiunta per i valori di ValidateSet quando si assegna a una variabile. Ad esempio, se si digita la definizione di variabile seguente:

[ValidateSet('Chocolate', 'Strawberry', 'Vanilla')]
[string]$flavor = 'Strawberry'
$flavor = <tab>

Quando si preme tabulazioni, si otterrà il risultato seguente:

$flavor = 'Chocolate'

Completamento tramite tabulazione per parole chiave basate su commenti

A partire da PowerShell 7.2, è stato aggiunto il supporto per il #requires completamento tramite tabulazione dei parametri e delle parole chiave per la Guida basata su commenti.

Esempio di istruzione for #requires

#requires -<Ctrl-Space>

L'espansione del menu mostra le opzioni dei parametri seguenti:

#requires -<Ctrl-Space>
Modules     PSEdition     RunAsAdministrator    Version

Esempio per la Guida basata su commenti

<#
    .<Ctrl-Space>

L'espansione del menu mostra le opzioni di parole chiave seguenti:

 <#
    .COMPONENT
COMPONENT      EXTERNALHELP           FUNCTIONALITY     NOTES         REMOTEHELPRUNSPACE
DESCRIPTION    FORWARDHELPCATEGORY    INPUTS            OUTPUTS       ROLE
EXAMPLE        FORWARDHELPTARGETNAME  LINK              PARAMETER     SYNOPSIS

Vedi anche