TabExpansion2
Een helperfunctie waarmee de CompleteInput() methode van de CommandCompletion-klasse wordt verpakt om tabvoltooiing voor PowerShell-scripts te bieden.
Syntaxis
ScriptInputSet (Standaard)
TabExpansion2
[-inputScript] <String>
[[-cursorColumn] <Int32>]
[[-options] <Hashtable>]
[<CommonParameters>]
AstInputSet
TabExpansion2
[-ast] <Ast>
[-tokens] <Token[]>
[-positionOfCursor] <IScriptPosition>
[[-options] <Hashtable>]
[<CommonParameters>]
Description
TabExpansion2 is een ingebouwde functie die tabvoltooiing biedt voor gebruikersinvoer. PowerShell roept deze functie aan wanneer de gebruiker tijdens het typen van een opdracht op de Tab- of Ctrl+spa tietoets drukt. De functie retourneert een lijst met mogelijke voltooiingen voor de huidige invoer.
TabExpansion2 wordt normaal gesproken niet rechtstreeks door gebruikers aangeroepen. Het kan echter handig zijn om tabvoltooiing te testen. Als u TabExpansion2wilt gebruiken, moet u het huidige invoerscript en de cursorpositie in het script opgeven. De functie retourneert een CommandCompletion-object met een lijst met mogelijke voltooiingen voor de huidige invoer. Dit invoerscript kan een tekenreeks of een abstracte syntaxisstructuur (AST) zijn die het script vertegenwoordigt.
U kunt het standaardgedrag van TabExpansion2 overschrijven door een aangepaste functie met dezelfde naam in uw PowerShell-sessie te definiëren. Deze aangepaste functie kan voltooiingen bieden voor aangepaste opdrachten of parameters. Hoewel het mogelijk is om TabExpansion2te overschrijven, wordt dit niet ondersteund. U moet alleen een aangepaste functie maken als u een specifieke behoefte hebt om het voltooiingsgedrag van het tabblad aan te passen.
Voorbeelden
Voorbeeld 1: tabvoltooiing ophalen voor opdrachtparameter
In dit voorbeeld ziet u dezelfde resultaten die u zou krijgen door Format-Hex -<Tab> in te voeren bij de PowerShell-opdrachtprompt. De functie TabExpansion2 retourneert een CommandCompletion--object met een lijst met mogelijke voltooiingen voor het - 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
Voorbeeld 2: tabvoltooiing ophalen voor parameterwaarden
In dit voorbeeld ziet u hoe u tabvoltooiing voor parameterwaarden kunt ophalen. In dit voorbeeld verwachten we dat parameter Fase drie mogelijke waarden heeft en dat een van de waarden Threeis. U kunt deze techniek gebruiken om te testen of de tabvoltooiing voor uw functie de verwachte resultaten retourneert.
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
Parameters
-ast
Een abstract ast-object (syntaxisstructuur) dat het script aangeeft dat u wilt uitbreiden met behulp van tabvoltooiing.
Parametereigenschappen
| Type: | Ast |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
AstInputSet
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-cursorColumn
Het kolomnummer van de cursor in de tekenreeks van het invoerscript. De cursorpositie wordt gebruikt om het token te bepalen dat wordt uitgevouwen door tabvoltooiing.
Parametereigenschappen
| Type: | Int32 |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
ScriptInputSet
| Position: | 1 |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-inputScript
Een tekenreeks die het script aangeeft dat u wilt uitbreiden met behulp van tabvoltooiing.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
ScriptInputSet
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-options
Een hashtabel met optiewaarden die moeten worden doorgegeven aan de CompleteInput()-API. De API accepteert de volgende Booleaanse opties:
-
IgnoreHiddenShares- Wanneer deze is ingesteld op$true, negeert u verborgen UNC-shares, zoals\\COMPUTER\ADMIN$en\\COMPUTER\C$. PowerShell bevat standaard verborgen shares. -
RelativePaths: PowerShell bepaalt standaard hoe u paden uitbreidt op basis van de invoer die u hebt opgegeven. Als u deze waarde instelt op$truewordt PowerShell gedwongen paden te vervangen door relatieve paden. Als u deze waarde instelt op$false, dwingt u PowerShell om ze te vervangen door absolute paden. -
LiteralPaths: PowerShell vervangt standaard speciale bestandstekens, zoals vierkante haken en back-ticks, door hun escape-equivalenten. Als u deze waarde instelt op$truewordt de vervanging voorkomen.
Parametereigenschappen
| Type: | Hashtable |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | 3 |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-positionOfCursor
Het kolomnummer van de cursor in de invoer-AST. De cursorpositie wordt gebruikt om het token te bepalen dat wordt uitgevouwen door tabvoltooiing.
Parametereigenschappen
| Type: | IScriptPosition |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
AstInputSet
| Position: | 2 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-tokens
Een matrix met tokens die zijn geparseerd uit het invoerscript. De tokens worden gebruikt om het token te bepalen dat wordt uitgevouwen door tabvoltooiing.
Parametereigenschappen
| Type: | Token[] |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
AstInputSet
| Position: | 1 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
CommonParameters
Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.