TabExpansion2
En hjälpfunktion som omsluter CompleteInput()
metoden för klassen CommandCompletion för att tillhandahålla flikavslut för PowerShell-skript.
Syntax
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
TabExpansion2
[-ast] <Ast>
[-tokens] <Token[]>
[-positionOfCursor] <IScriptPosition>
[[-options] <Hashtable>]
[<CommonParameters>]
Description
TabExpansion2
är en inbyggd funktion som tillhandahåller flikkomplettering för användarindata. PowerShell anropar den här funktionen när användaren trycker på tabb- eller Ctrl-tangenten +blanksteg när ett kommando skrivs. Funktionen returnerar en lista över möjliga slutföranden för de aktuella indata.
TabExpansion2
anropas normalt inte direkt av användare. Det kan dock vara användbart för att slutföra testfliken. Om du vill använda TabExpansion2
måste du ange det aktuella indataskriptet och markörens position i skriptet. Funktionen returnerar ett CommandCompletion-objekt som innehåller en lista över möjliga slutföranden för de aktuella indata. Det här indataskriptet kan vara en sträng eller ett abstrakt syntaxträd (AST) som representerar skriptet.
Du kan åsidosätta standardbeteendet TabExpansion2
för genom att definiera en anpassad funktion med samma namn i PowerShell-sessionen. Den här anpassade funktionen kan tillhandahålla kompletteringar för anpassade kommandon eller parametrar. Även om det är möjligt att åsidosätta TabExpansion2
stöds det inte. Du bör bara skapa en anpassad funktion om du har ett specifikt behov av att anpassa flikens slutförandebeteende.
Exempel
Exempel 1 – Få fliken klar för kommandoparametern
Det här exemplet visar samma resultat som du skulle få genom att ange Format-Hex -<Tab>
i PowerShell-kommandotolken. Funktionen TabExpansion2
returnerar ett CommandCompletion-objekt som innehåller en lista över möjliga slutföranden -
för token.
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
Exempel 2 – Få fliken slutförd för parametervärden
Det här exemplet visar hur du får tabbavslut för parametervärden. I det här exemplet förväntar vi oss att stage-parametern har tre möjliga värden och att ett av värdena är Three
. Du kan använda den här tekniken för att testa att tabbavslutningen för funktionen returnerar det förväntade resultatet.
function GetData {
param (
[ValidateSet('One', 'Two', 'Three')]
[string]$Stage
)
Write-Verbose "Retrieving data for stage $Stage"
}
$result = TabExpansion2 -inputScript ($line = 'GetData -Stage ') -cursorColumn $line.Length |
Select-Object -ExpandProperty CompletionMatches
$result.Count -eq 3
$result.CompletionText -contains 'Three'
True
True
Parametrar
-ast
Ett ast-objekt (abstrakt syntaxträd) som representerar skriptet som du vill expandera med hjälp av tabbslut.
Typ: | Ast |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-cursorColumn
Kolumnnumret för markören i indataskriptsträngen. Markörens position används för att fastställa den token som expanderas av flikens slutförande.
Typ: | Int32 |
Position: | 1 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-inputScript
En sträng som representerar skriptet som du vill expandera med hjälp av tabbavslut.
Typ: | String |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-options
En hashtabell med alternativvärden som ska skickas till API:et CompleteInput()
. API:et accepterar följande booleska alternativ:
IgnoreHiddenShares
– När värdet är inställt på$true
ignorerar du dolda UNC-resurser som\\COMPUTER\ADMIN$
och\\COMPUTER\C$
. Som standard innehåller PowerShell dolda resurser.RelativePaths
– Som standard bestämmer PowerShell hur sökvägar ska expanderas baserat på de indata som du angav. Om du ställer in det här värdet för att$true
tvinga PowerShell att ersätta sökvägar med relativa sökvägar. Om du anger det här värdet till$false
tvingar du PowerShell att ersätta dem med absoluta sökvägar.LiteralPaths
– Som standard ersätter PowerShell specialfiltecken, till exempel hakparenteser och back-ticks, med deras undantagna motsvarigheter. Om du ställer in det här värdet så$true
förhindras ersättningen.
Typ: | Hashtable |
Position: | 3 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-positionOfCursor
Kolumnnumret för markören i indata-AST. Markörens position används för att fastställa den token som expanderas av flikens slutförande.
Typ: | IScriptPosition |
Position: | 2 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-tokens
En matris med token som parsas från indataskriptet. Token används för att fastställa den token som expanderas av flikens slutförande.
Typ: | Token[] |
Position: | 1 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
None