Dela via


about_Tab_Expansion

Kort beskrivning

PowerShell tillhandahåller kompletteringar av indata för att ge tips, aktivera identifiering och påskynda inmatning. Kommandonamn, parameternamn, argumentvärden och filsökvägar kan slutföras genom att trycka på tabbtangenten .

Lång beskrivning

Flikexpansion styrs av den interna funktionen TabExpansion eller TabExpansion2. Eftersom den här funktionen kan ändras eller åsidosättas är den här diskussionen en guide till beteendet för powershell-standardkonfigurationen.

Tabbnyckeln är standardnyckelbindningen i Windows. Den här nyckelbindningen kan ändras av PSReadLine-modulen eller programmet som är värd för PowerShell. Nyckelbindningen skiljer sig från Windows-plattformar. Mer information finns i about_PSReadLine.

Anteckning

En begränsning i flikexpansionsprocessen är att flikar alltid tolkas som försök att slutföra ett ord. Om du kopierar och klistrar in kommandoexempel i en PowerShell-konsol kontrollerar du att exemplet inte innehåller flikar. Om det gör det kommer resultaten att bli oförutsägbara och kommer nästan säkert inte att vara vad du avsåg.

Fil- och cmdlet-namn har slutförts

Om du vill fylla i ett filnamn eller sökväg från de tillgängliga alternativen automatiskt skriver du en del av namnet och trycker på tabbtangenten . PowerShell expanderar automatiskt namnet till den första matchningen som hittas. Om du trycker på tabbtangenten upprepade gånger går du igenom alla tillgängliga alternativ.

Tabbexpansionen för cmdlet-namn skiljer sig något. Om du vill använda flikexpansion på ett cmdlet-namn skriver du hela den första delen av namnet (verbet) och bindestrecket som följer. Du kan fylla i mer av namnet för en partiell matchning. Om du till exempel skriver get-co och trycker på tabbtangenten expanderar PowerShell automatiskt detta till cmdleten Get-Command (observera att det också ändrar skiftläget för bokstäver till standardformuläret). Om du trycker på Tabb igen ersätter PowerShell detta med det enda andra matchande cmdletnamnet, Get-Content.

Anteckning

Från och med PowerShell 7.0 expanderar Tab även förkortade cmdletar och funktioner. Returnerar Import-PowerShellDataFiletill exempel i-psdf<tab> .

Tabbavslut fungerar också för att lösa PowerShell-alias och inbyggda körbara filer.

Du kan använda flikexpansion upprepade gånger på samma rad. Du kan till exempel använda flikexpansion på namnet på cmdleten Get-Content genom att ange:

Exempel

PS> Get-Con<Tab>

När du trycker på tabbtangenten expanderas kommandot till:

PS> Get-Content

Du kan sedan delvis ange sökvägen till loggfilen för aktiv installation och använda flikexpansion igen:

PS> Get-Content c:\windows\acts<Tab>

När du trycker på tabbtangenten expanderas kommandot till:

PS> Get-Content C:\windows\actsetup.log

PSReadLine har också en funktion för att slutföra menyn. Standardnyckelbindningen i Windows ärCtrl-blanksteg-.

PS> fore<Ctrl-Space>

När du trycker på Ctrl-blanksteg- visar PowerShell den fullständiga listan med matchande värden som en meny:

PS> foreach
foreach         ForEach-Object  foreach.cmd

I det här exemplet matchas strängen "fore" med foreach (PowerShell-alias), ForEach-Object (cmdlet) och foreach.cmd (internt kommando). Använd piltangenterna för att välja önskat värde.

Parameterargumentet har slutförts

Tabbavslut kan också fungera för att slutföra parameterargument. På så sätt kan du använda tabbnyckeln för att bläddra igenom en lista över möjliga värden som är giltiga för någon parameter.

Mer information finns i about_Functions_Argument_Completion.

Uppräknat värde har slutförts

Från och med PowerShell 7.0 har stöd för tabbavslut av uppräkningar lagts till. Du kan använda tabbslut för att välja det värde som du vill ha var som helst där ett uppräkning används. Exempel:

enum Suits {
    Clubs = 0
    Diamonds = 1
    Hearts = 2
    Spades = 3
}

[Suits]$suit = 'c<Tab>

Uppräknade värden är strängar, så värdet som ska slutföras måste börja med ett enskilt eller dubbelt citattecken.

När du trycker på tabbtangenten får du följande resultat:

[Suits]$suit = 'Clubs'

Tabbavslut fungerar också med .NET-uppräkningar.

[System.IO.FileAttributes]$attr = 'S<Tab><Tab>

Om du trycker på tabbtangenten två gånger går du igenom de två värden som börjar med bokstaven "S". Slutresultatet är:

[System.IO.FileAttributes]$attr = 'System'

Från och med PowerShell 7.0 lades flikexpansionen till för värdena ValidateSet för när du tilldelar till en variabel. Om du till exempel skrev följande variabeldefinition:

[ValidateSet('Chocolate', 'Strawberry', 'Vanilla')][string]$flavor = 'Strawberry'
$flavor = <tab>

När du trycker på tabbtangenten får du följande resultat:

$flavor = 'Chocolate'

Se även