TabExpansion2
En hjälpfunktion som omsluter CompleteInput()
-metoden för klassen CommandCompletion för att tillhandahålla tabbslut 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å -fliken eller Ctrl+blanksteg tangenten när du skriver ett kommando. 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 för TabExpansion2
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 [psobject] InputObject
-Encoding Encoding ParameterName [Encoding] Encoding
-Count Count ParameterName [long] Count
-Offset Offset ParameterName [long] Offset
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 parameter 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 CompleteInput()
-API:et. API:et accepterar följande booleska alternativ:
-
IgnoreHiddenShares
– Ignorera dolda UNC-resurser som\\COMPUTER\ADMIN$
och\\COMPUTER\C$
när det är inställt på$true
. Som standard innehåller PowerShell dolda resurser. -
RelativePaths
– Som standard bestämmer PowerShell hur du expanderar sökvägar baserat på de indata du angav. Om du anger det här värdet till$true
tvingar 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 anger det här värdet till$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