TabExpansion2
Funzione helper che esegue il wrapping del metodo CompleteInput() della classe CommandCompletion per fornire il completamento tramite tabulazione per gli script di PowerShell.
Sintassi
ScriptInputSet (impostazione predefinita).
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
AstInputSet
TabExpansion2
[-ast] <Ast>
[-tokens] <Token[]>
[-positionOfCursor] <IScriptPosition>
[[-options] <Hashtable>]
[<CommonParameters>]
Descrizione
TabExpansion2 è una funzione predefinita che fornisce il completamento tramite tabulazione per l'input dell'utente. PowerShell chiama questa funzione quando l'utente preme la tabulazione o CTRL+tasto spazio durante la digitazione di un comando. La funzione restituisce un elenco di possibili completamenti per l'input corrente.
TabExpansion2 normalmente non viene chiamato direttamente dagli utenti. Tuttavia, può essere utile per testare il completamento della scheda. Per usare TabExpansion2, è necessario specificare lo script di input corrente e la posizione del cursore nello script. La funzione restituisce un oggetto CommandCompletion che contiene un elenco di possibili completamenti per l'input corrente. Questo script di input può essere una stringa o un albero della sintassi astratta (AST) che rappresenta lo script.
È possibile eseguire l'override del comportamento predefinito di TabExpansion2 definendo una funzione personalizzata con lo stesso nome nella sessione di PowerShell. Questa funzione personalizzata può fornire completamenti per comandi o parametri personalizzati. Sebbene sia possibile eseguire l'override di TabExpansion2, non è supportato. È consigliabile creare una funzione personalizzata solo se è necessario personalizzare il comportamento di completamento della scheda.
Esempio
Esempio 1 - Ottenere il completamento tramite tabulazione per il parametro di comando
Questo esempio mostra gli stessi risultati ottenuti immettendo Format-Hex -<Tab> al prompt dei comandi di PowerShell. La funzione TabExpansion2 restituisce un oggetto CommandCompletion che contiene un elenco di possibili completamenti per il token di -.
TabExpansion2 -inputScript ($s = 'Format-Hex -') -cursorColumn $s.Length |
Select-Object -ExpandProperty CompletionMatches
CompletionText ListItemText ResultType ToolTip
-------------- ------------ ---------- -------
-Path Path ParameterName [string[]] Path
-LiteralPath LiteralPath ParameterName [string[]] LiteralPath
-InputObject InputObject ParameterName [Object] InputObject
-Encoding Encoding ParameterName [string] Encoding
-Raw Raw ParameterName [switch] Raw
-Verbose Verbose ParameterName [switch] Verbose
-Debug Debug ParameterName [switch] Debug
-ErrorAction ErrorAction ParameterName [ActionPreference] ErrorAction
-WarningAction WarningAction ParameterName [ActionPreference] WarningAction
-InformationAction InformationAction ParameterName [ActionPreference] InformationAction
-ErrorVariable ErrorVariable ParameterName [string] ErrorVariable
-WarningVariable WarningVariable ParameterName [string] WarningVariable
-InformationVariable InformationVariable ParameterName [string] InformationVariable
-OutVariable OutVariable ParameterName [string] OutVariable
-OutBuffer OutBuffer ParameterName [int] OutBuffer
-PipelineVariable PipelineVariable ParameterName [string] PipelineVariable
Esempio 2- Ottenere il completamento tramite tabulazione per i valori dei parametri
In questo esempio viene illustrato come ottenere il completamento tramite tabulazione per i valori dei parametri. In questo esempio si prevede che parametro Stage abbia tre valori possibili e che uno dei valori sia Three. È possibile usare questa tecnica per testare il completamento della scheda per la funzione restituisce i risultati previsti.
function Get-Data {
param (
[ValidateSet('One', 'Two', 'Three')]
[string]$Stage
)
Write-Verbose "Retrieving data for stage $Stage"
}
$result = TabExpansion2 -inputScript ($line = 'Get-Data -Stage ') -cursorColumn $line.Length |
Select-Object -ExpandProperty CompletionMatches
$result.Count -eq 3
$result.CompletionText -contains 'Three'
True
True
Parametri
-ast
Oggetto albero della sintassi astratta (AST) che rappresenta lo script che si desidera espandere utilizzando il completamento tramite tabulazione.
Proprietà dei parametri
| Tipo: | Ast |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
AstInputSet
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-cursorColumn
Numero di colonna del cursore nella stringa dello script di input. La posizione del cursore viene utilizzata per determinare il token espanso dal completamento della scheda.
Proprietà dei parametri
| Tipo: | Int32 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ScriptInputSet
| Posizione: | 1 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-inputScript
Stringa che rappresenta lo script che si desidera espandere usando il completamento tramite tabulazione.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ScriptInputSet
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-options
Tabella hash dei valori delle opzioni da passare all'API CompleteInput(). L'API accetta le opzioni booleane seguenti:
-
IgnoreHiddenShares: se impostato su$true, ignorare le condivisioni UNC nascoste, ad esempio\\COMPUTER\ADMIN$e\\COMPUTER\C$. Per impostazione predefinita, PowerShell include condivisioni nascoste. -
RelativePaths: per impostazione predefinita, PowerShell decide come espandere i percorsi in base all'input specificato. L'impostazione di questo valore su$trueforza PowerShell a sostituire i percorsi con percorsi relativi. L'impostazione di questo valore su$falseforza PowerShell a sostituirli con percorsi assoluti. -
LiteralPaths: per impostazione predefinita, PowerShell sostituisce caratteri di file speciali, ad esempio parentesi quadre e tick back-tick, con i relativi equivalenti di escape. L'impostazione di questo valore su$trueimpedisce la sostituzione.
Proprietà dei parametri
| Tipo: | Hashtable |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 3 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-positionOfCursor
Numero di colonna del cursore nell'AST di input. La posizione del cursore viene utilizzata per determinare il token espanso dal completamento della scheda.
Proprietà dei parametri
| Tipo: | IScriptPosition |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
AstInputSet
| Posizione: | 2 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-tokens
Matrice di token analizzati dallo script di input. I token vengono usati per determinare il token espanso dal completamento tramite tabulazione.
Proprietà dei parametri
| Tipo: | Token[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
AstInputSet
| Posizione: | 1 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.