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
Tabbexpansion styrs av den interna funktionen TabExpansion2. Eftersom den här funktionen kan ändras eller åsidosättas är den här diskussionen en guide till beteendet för powershell-standardkonfigurationen.
Flikexpansionens beteende kan också ändras av funktionen Predictive IntelliSense i PSReadLine-modulen. Mer information finns i Predictive IntelliSense.
Tabbtangenten är standardnyckelbindningen i Windows. Du kan ändra nyckelbindningen med hjälp 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 blir resultatet oförutsägbart och kommer nästan säkert inte att vara det du avsåg.
Slutförande av fil- och cmdlet-namn
Om du vill fylla i ett filnamn eller en 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.
Tabbutökningen av 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 det bindestreck som följer efter det. Du kan fylla i mer av namnet för en partiell matchning.
Om du till exempel skriver get-co
och sedan 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 cmdlet-namnet, Get-Content
.
Anteckning
Från och med PowerShell 7.0 expanderar Tab även förkortade cmdletar och funktioner. Returnerar Import-PowerShellDataFile
till exempel i-psdf<tab>
.
Tabbifyllning fungerar också för att lösa PowerShell-alias och interna 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 flikexpansionen 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.
Slutförande av parameterargument
Tabbifyllning kan också fungera för att slutföra parameterargument. Du kan använda tabbtangenten 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
PowerShell 7.0 har lagts till stöd för tabbifyllning av uppräkningar. Du kan använda tabbifyllning för att välja det värde som du vill ha var du än använder en uppräkning. 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 enda eller dubbelt citattecken.
När du trycker på tabbtangenten får du följande resultat:
[Suits]$suit = 'Clubs'
Tabbifyllning 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 flikexpansion 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'
Tabbifyllningar för kommentarsbaserade nyckelord
Från och med PowerShell 7.2 har stöd lagts till för tabbifyllning av #requires
parametrarna och nyckelorden för kommentarsbaserad hjälp.
Exempel på #requires
instruktion
#requires -<Ctrl-Space>
Menyexpansion visar följande parameteralternativ:
#requires -<Ctrl-Space>
Modules PSEdition RunAsAdministrator Version
Exempel på kommentarsbaserad hjälp
<#
.<Ctrl-Space>
Menyexpansion visar följande nyckelordsalternativ:
<#
.COMPONENT
COMPONENT EXTERNALHELP FUNCTIONALITY NOTES REMOTEHELPRUNSPACE
DESCRIPTION FORWARDHELPCATEGORY INPUTS OUTPUTS ROLE
EXAMPLE FORWARDHELPTARGETNAME LINK PARAMETER SYNOPSIS