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-PowerShellDataFilebijvoorbeeld 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

Zie ook