about_Tab_Expansion
Korte beschrijving
PowerShell biedt voltooiingen voor invoer om hints te bieden, detectie in te schakelen en invoerinvoer te versnellen. Opdrachtnamen, parameternamen, argumentwaarden en bestandspaden kunnen allemaal worden voltooid door op de Tab-toets te drukken.
Lange beschrijving
Tabuitbreiding wordt beheerd door de interne functie TabExpansion2. Omdat deze functie kan worden gewijzigd of overschreven, is deze discussie een handleiding voor het gedrag van de standaard PowerShell-configuratie.
Het gedrag van tabuitbreiding kan ook worden gewijzigd door de functie Predictive IntelliSense van de PSReadLine-module. Zie Predictive IntelliSense voor meer informatie.
De Tab-toets is de standaardsleutelbinding in Windows. U kunt de sleutelbinding wijzigen met behulp van de PSReadLine-module of de toepassing die als host fungeert voor PowerShell. De sleutelbinding verschilt op niet-Windows-platforms. Zie about_PSReadLine voor meer informatie.
Notitie
Een beperking van het tabuitbreidingsproces is dat tabbladen altijd worden geïnterpreteerd als pogingen om een woord te voltooien. Als u voorbeelden van opdrachten kopieert en plakt in een PowerShell-console, moet u ervoor zorgen dat het voorbeeld geen tabbladen bevat. Als dit het geval is, zijn de resultaten onvoorspelbaar en zijn ze vrijwel zeker niet wat u bedoelde.
Voltooiing van bestands- en cmdlet-namen
Als u automatisch een bestandsnaam of pad wilt invullen vanuit de beschikbare opties, typt u een deel van de naam en drukt u op de Tab-toets . PowerShell breidt de naam automatisch uit naar de eerste overeenkomst die wordt gevonden. Door herhaaldelijk op de Tab-toets te drukken, worden alle beschikbare opties doorlopen.
De tabuitbreiding van cmdlet-namen is iets anders. Als u tabuitbreiding wilt gebruiken voor een cmdlet-naam, typt u het hele eerste deel van de naam (het werkwoord) en het afbreekstreepje dat erop volgt. U kunt meer van de naam invullen voor een gedeeltelijke overeenkomst.
Als u bijvoorbeeld typt get-co
en vervolgens op de Tab-toets drukt, wordt dit automatisch uitgebreid naar de Get-Command
cmdlet. U ziet dat ook het hoofdlettergebruik wordt gewijzigd in het standaardformulier. Als u nogmaals op de Tab-toets drukt, vervangt PowerShell dit door de enige andere overeenkomende cmdlet-naam. Get-Content
Notitie
Vanaf PowerShell 7.0 breidt Tab ook verkorte cmdlets en functies uit. Retourneert Import-PowerShellDataFile
bijvoorbeeld i-psdf<tab>
.
Met tabvoltooiing kunt u ook PowerShell-alias en systeemeigen uitvoerbare bestanden oplossen.
U kunt tabuitbreiding herhaaldelijk op dezelfde regel gebruiken. U kunt bijvoorbeeld tabuitbreiding gebruiken voor de naam van de Get-Content
cmdlet door het volgende in te voeren:
Voorbeelden
PS> Get-Con<Tab>
Wanneer u op de Tab-toets drukt, wordt de opdracht uitgebreid naar:
PS> Get-Content
U kunt vervolgens gedeeltelijk het pad naar het actieve installatielogboekbestand opgeven en de tabuitbreiding opnieuw gebruiken:
PS> Get-Content c:\windows\acts<Tab>
Wanneer u op de Tab-toets drukt, wordt de opdracht uitgebreid naar:
PS> Get-Content C:\windows\actsetup.log
PSReadLine heeft ook een functie voor het voltooien van het menu. De standaardsleutelbinding in Windows is Ctrl-spatiebalk+.
PS> fore<Ctrl-Space>
Wanneer u op Ctrl-spatiebalk+ drukt, wordt in PowerShell de volledige lijst met overeenkomende waarden weergegeven als menu:
PS> foreach
foreach ForEach-Object foreach.cmd
In dit voorbeeld wordt de tekenreeks 'fore' vergeleken foreach
met (PowerShell-alias), ForEach-Object
(cmdlet) en foreach.cmd
(systeemeigen opdracht). Gebruik de pijltoetsen om de gewenste waarde te selecteren.
Voltooiing van parameterargument
Tabvoltooiing kan ook werken om parameterargumenten te voltooien. U kunt de Tab-toets gebruiken om door een lijst met mogelijke waarden te bladeren die geldig zijn voor een bepaalde parameter. Zie about_Functions_Argument_Completion voor meer informatie.
Voltooiing van geïnventariseerd waarde
PowerShell 7.0 heeft ondersteuning toegevoegd voor het voltooien van tabbladen van opsommingen. U kunt tabvoltooiing gebruiken om de gewenste waarde te selecteren waar u een opsomming gebruikt. Voorbeeld:
enum Suits {
Clubs = 0
Diamonds = 1
Hearts = 2
Spades = 3
}
[Suits]$suit = 'c<Tab>
Geïnventareerde waarden zijn tekenreeksen, dus de waarde die moet worden voltooid, moet beginnen met één of dubbel aanhalingsteken.
Wanneer u op de Tab-toets drukt, krijgt u de volgende resultaten:
[Suits]$suit = 'Clubs'
Tabvoltooiing werkt ook met .NET-opsommingen.
[System.IO.FileAttributes]$attr = 'S<Tab><Tab>
Als u tweemaal op de Tab-toets drukt, worden de twee waarden doorlopen die beginnen met de letter S
. Het eindresultaat is:
[System.IO.FileAttributes]$attr = 'System'
Vanaf PowerShell 7.0 is tabuitbreiding toegevoegd voor de waarden van ValidateSet
wanneer u een variabele toewijst. Als u bijvoorbeeld de volgende variabeledefinitie typt:
[ValidateSet('Chocolate', 'Strawberry', 'Vanilla')]
[string]$flavor = 'Strawberry'
$flavor = <tab>
Wanneer u op de Tab-toets drukt, krijgt u het volgende resultaat:
$flavor = 'Chocolate'
Tabvoltooiingen voor trefwoorden op basis van opmerkingen
Vanaf PowerShell 7.2 is ondersteuning toegevoegd voor het voltooien van tabbladen van de #requires
parameters en de trefwoorden voor hulp op basis van opmerkingen.
Voorbeeld voor #requires
instructie
#requires -<Ctrl-Space>
Menuuitbreiding toont de volgende parameteropties:
#requires -<Ctrl-Space>
Modules PSEdition RunAsAdministrator Version
Voorbeeld voor hulp op basis van opmerkingen
<#
.<Ctrl-Space>
Menuuitbreiding toont de volgende trefwoordopties:
<#
.COMPONENT
COMPONENT EXTERNALHELP FUNCTIONALITY NOTES REMOTEHELPRUNSPACE
DESCRIPTION FORWARDHELPCATEGORY INPUTS OUTPUTS ROLE
EXAMPLE FORWARDHELPTARGETNAME LINK PARAMETER SYNOPSIS