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

Zie ook