TabExpansion2
Egy segédfüggvény, amely a CompleteInput() osztály metódusát burkolja a PowerShell-szkriptek lapkimenetének biztosításához.
Syntax
ScriptInputSet (Alapértelmezett)
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
AstInputSet
TabExpansion2
[-ast] <Ast>
[-tokens] <Token[]>
[-positionOfCursor] <IScriptPosition>
[[-options] <Hashtable>]
[<CommonParameters>]
Description
TabExpansion2 egy beépített függvény, amely lapkimenetet biztosít a felhasználói bemenethez. A PowerShell meghívja ezt a függvényt, amikor a felhasználó lenyomja a Tab vagy Ctrl+Szóköz billentyűt egy parancs beírása közben. A függvény az aktuális bemenet lehetséges befejezéseinek listáját adja vissza.
TabExpansion2 általában nem közvetlenül a felhasználók hívják. A lap befejezésének teszteléséhez azonban hasznos lehet. A TabExpansion2használatához meg kell adnia az aktuális bemeneti szkriptet és a kurzor pozícióját a szkriptben. A függvény egy CommandCompletion objektumot ad vissza, amely az aktuális bemenet lehetséges befejezéseinek listáját tartalmazza. Ez a bemeneti szkript lehet egy sztring vagy egy absztrakt szintaxisfa (AST), amely a szkriptet jelöli.
Az TabExpansion2 alapértelmezett viselkedését felülbírálhatja úgy, hogy egy azonos nevű egyéni függvényt definiál a PowerShell-munkamenetben. Ez az egyéni függvény egyéni parancsokhoz vagy paraméterekhez adhat kiegészítéseket. Bár lehetséges a TabExpansion2felülbírálása, ez nem támogatott. Csak akkor hozzon létre egyéni függvényt, ha a lapkiegészítési viselkedést testre kell szabnia.
Példák
1. példa – A parancsparaméter lapkiegészítésének lekérése
Ez a példa ugyanazokat az eredményeket mutatja be, amelyeket a PowerShell parancssorában Format-Hex -<Tab> beírásával kaphat. A TabExpansion2 függvény egy CommandCompletion objektumot ad vissza, amely a --jogkivonat lehetséges befejezéseinek listáját tartalmazza.
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
2. példa – A paraméterértékek lapkiegészítésének lekérése
Ez a példa bemutatja, hogyan kérhet le tabulátorkiegészítést a paraméterértékekhez. Ebben a példában arra számítunk, hogy Stage paraméter három lehetséges értékkel rendelkezik, és az egyik érték Three. Ezzel a technikával tesztelheti, hogy a függvény lapkizárása a várt eredményeket adja vissza.
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
Paraméterek
-ast
Absztrakciós szintaxisfa (AST) objektum, amely a tabulátorkibontással kibontani kívánt szkriptet jelöli.
Paramétertulajdonságok
| Típus: | Ast |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
AstInputSet
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-cursorColumn
A kurzor oszlopszáma a bemeneti szkript sztringjében. A kurzor pozíciója határozza meg a lapkizárással kibontott jogkivonatot.
Paramétertulajdonságok
| Típus: | Int32 |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
ScriptInputSet
| Position: | 1 |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-inputScript
Egy sztring, amely azt a szkriptet jelöli, amelyet tabulátorkiegészítéssel ki szeretne bontani.
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
ScriptInputSet
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-options
A CompleteInput() API-nak átadni kívánt beállításértékek kivonata. Az API a következő logikai beállításokat fogadja el:
-
IgnoreHiddenShares– Ha$trueértékre van állítva, hagyja figyelmen kívül a rejtett UNC-megosztásokat, például\\COMPUTER\ADMIN$és\\COMPUTER\C$. Alapértelmezés szerint a PowerShell rejtett megosztásokat is tartalmaz. -
RelativePaths– Alapértelmezés szerint a PowerShell dönti el, hogyan bontsa ki az útvonalakat a megadott bemenet alapján. Ha ezt az értéket úgy állítja be, hogy$truekényszeríti a PowerShellt az útvonalak relatív elérési utakra való cseréjére. Ha ezt az értéket$falseértékre állítja, a PowerShellt arra kényszeríti, hogy abszolút elérési utakra cserélje őket. -
LiteralPaths– A PowerShell alapértelmezés szerint lecseréli a speciális fájlkaraktereket, például szögletes zárójeleket és visszajeleket a feloldott megfelelőikre. Ha ezt az értéket$trueértékre állítja, az megakadályozza a cserét.
Paramétertulajdonságok
| Típus: | Hashtable |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | 3 |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-positionOfCursor
A kurzor oszlopszáma a bemeneti AST-ben. A kurzor pozíciója határozza meg a lapkizárással kibontott jogkivonatot.
Paramétertulajdonságok
| Típus: | IScriptPosition |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
AstInputSet
| Position: | 2 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-tokens
A bemeneti szkriptből elemezett jogkivonatok tömbje. A jogkivonatok a lapkizárással kibontott jogkivonat meghatározására szolgálnak.
Paramétertulajdonságok
| Típus: | Token[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
AstInputSet
| Position: | 1 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
CommonParameters
Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.