about_Tab_Expansion
Korte beschrijving
PowerShell biedt voltooiingen op invoer om hints te bieden, detectie mogelijk te maken en invoerinvoer te versnellen. Opdrachtnamen, parameternamen, argumentwaarden en bestandspaden kunnen allemaal worden voltooid door op de Tab-toets te drukken.
Lange beschrijving
Tabuitbreiding wordt bepaald door de interne functie TabExpansion of TabExpansion2. Aangezien deze functie kan worden gewijzigd of genegeerd, is deze discussie een handleiding voor het gedrag van de standaard PowerShell-configuratie.
De Tab-toets is de standaardsleutelbinding in Windows. Deze sleutelbinding kan worden gewijzigd door 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 bijna zeker niet wat u bedoelde.
Voltooiing van bestands- en cmdletnaam
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 tabbladuitbreiding 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 (zoals u ziet, wordt het hoofdlettergebruik ook gewijzigd in het standaardformulier). Als u nogmaals op tabtoets drukt, vervangt PowerShell dit door de enige andere overeenkomende cmdletnaam. Get-Content
Notitie
Vanaf PowerShell 7.0 wordt met Tab ook afgekorte cmdlets en functies uitgebreid. Retourneert Import-PowerShellDataFilebijvoorbeeld i-psdf<tab> .
Tabvoltooiing werkt ook om PowerShell-alias en systeemeigen uitvoerbare bestanden op te lossen.
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 logboekbestand Active Setup opgeven en 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 opCtrl-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. Hiermee kunt u de Tab-toets gebruiken om een lijst met mogelijke waarden te doorlopen die geldig zijn voor een bepaalde parameter.
Zie about_Functions_Argument_Completion voor meer informatie.
Voltooiing van geïnventariseerd waarde
Vanaf PowerShell 7.0 is ondersteuning voor het voltooien van tabbladen toegevoegd. U kunt tabvoltooiing gebruiken om de gewenste waarde te selecteren waar een opsomming wordt gebruikt. Bijvoorbeeld:
enum Suits {
Clubs = 0
Diamonds = 1
Hearts = 2
Spades = 3
}
[Suits]$suit = 'c<Tab>
Geïnventareerde waarden zijn tekenreeksen, zodat de te voltooien waarde 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>
Door tweemaal op de Tab-toets te drukken, worden de twee waarden doorlopen die beginnen met de letter 'S'. Het eindresultaat is:
[System.IO.FileAttributes]$attr = 'System'
Vanaf PowerShell 7.0 is tabbladuitbreiding toegevoegd voor de waarden van ValidateSet het toewijzen aan een variabele. 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'
Tab-voltooiingen 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