Använda tab-completion i gränssnittet
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.
Tabbnyckeln är standardnyckelbindningen i Windows. PSReadLine innehåller också en MenuComplete
funktion som är bunden till Ctrl-blanksteg+. Funktionen MenuComplete
visar en lista över matchande slutföranden under kommandoraden.
Dessa nyckelbindningar kan ändras med PSReadLine-cmdletar eller programmet som är värd för PowerShell. Nyckelbindningar kan vara olika på plattformar som inte är Windows. Mer information finns i about_PSReadLine_Functions.
Inbyggda funktioner för flikkomplettering
PowerShell har aktiverat tabbar för många aspekter av kommandoradsmiljön.
Filnamn 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 igen går du igenom alla tillgängliga alternativ med varje tangenttryckning.
Slutförande av kommando- och parameternamn
Flikexpansionen 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 bindestrecket som följer. 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 deras standardformulär). Om du trycker på Tabb igen ersätter PowerShell detta med det enda andra matchande cmdletnamnet, Get-Content
. Tabbavslut fungerar också för att lösa PowerShell-alias och inbyggda körbara filer.
Följande bild visar exempel på flik- och menykomplettering.
Förbättringar av flikens andra slutförande
Varje ny version av PowerShell innehåller förbättringar av tabbar som åtgärdar buggar och förbättrar användbarheten.
PowerShell 7.0
- Tabbavslut löser variabeltilldelningar som räknas upp eller är typbegränsade
- Tabbavslut expanderar förkortade cmdletar och funktioner. Returnerar till exempel
i-psdf<tab>
Import-PowerShellDataFile
PowerShell 7.2
- Åtgärda att fliken har slutförts för oallokerade
about*
ämnen - Åtgärda splatting som behandlas som positionsparameter i slutföranden
- Lägga till slutföranden för kommentarsbaserade hjälpnyckelord
- Lägg till slutförande för
#requires
instruktioner - Lägg till flikavslut för visa parametern
Format-*
för cmdletar - Lägga till stöd för klassbaserade argument-completers
PowerShell 7.3
- Åtgärda flikslut i skriptblocket som angetts för
ValidateScriptAttribute
- Fliken har lagts till för loopetiketter efter
break
ochcontinue
- Förbättra hashtable-slutförande i flera scenarier
- Parametersplatting
- Argumentparameter för
Invoke-CimMethod
- FilterHashtable-parameter för
Get-WinEvent
- Egenskapsparameter för CIM-cmdletar
- Tar bort dubbletter från scenarier för medlemsavslut
- Stöd för framåtblickande snedstreck i slutförande av nätverksresurs (UNC-sökväg)
- Förbättra automatisk slutförande av medlemmar
- Prioritera
ValidateSet
slutföranden framför uppräkningar för parametrar - Lägga till typinferensstöd för generiska metoder med typparametrar
- Förbättra typinferens och slutföranden
- Tillåter att metoder visas i slutföranderesultat för
ForEach-Object -MemberName
- Förhindrar slutförande av uttryck som returnerar tomrum som (
[void]("")
) - Tillåter att icke-standardklasskonstruktorer visas när klassavslutningen baseras på AST
- Tillåter att metoder visas i slutföranderesultat för
Andra sätt att förbättra flikens slutförande av kommandoparametrar
Den inbyggda flikexpansionen styrs av den interna funktionen TabExpansion eller TabExpansion2. Det är möjligt att skapa funktioner eller moduler som ersätter standardbeteendet för dessa funktioner. Du hittar exempel i PowerShell-galleriet genom att söka efter nyckelordet TabExpansion.
Använda attributen ValidateSet
eller ArgumentCompletions
med parametrar
Med ArgumentCompletions
attributet kan du lägga till tabbavslutsvärden till en specifik parameter.
Attributet ArgumentCompletions
liknar ValidateSet
. Båda attributen tar en lista med värden som ska visas när användaren trycker på Tabb efter parameternamnet. Men till skillnad från ValidateSet
verifieras inte värdena.
Mer information finns i:
Använda attributet ArgumentCompleter
eller Register-ArgumentCompleter
med parametrar
En argumentemplementerare är ett skriptblock eller en funktion som tillhandahåller dynamisk flikavslutning för parametervärden.
Med ArgumentCompleter
attributet kan du registrera en funktion som innehåller tabbavslutsvärden för parametern. Funktionen för att slutföra argumentet måste vara tillgänglig för funktionen som innehåller parametern med attributet ArgumentCompleter
. Vanligtvis definieras funktionen i samma skript eller modul.
Mer information finns i ArgumentCompleter.
Cmdleten Register-ArgumentCompleter
registrerar ett skriptblock som en argument completer-funktion vid körning för alla kommandon som du anger. På så sätt kan du definiera argument completers utanför skriptet eller modulen eller för interna kommandon. Mer information finns i Register-ArgumentCompleter.
Predictive IntelliSense i PSReadLine
PSReadLine 2.1.0 introducerade funktionen Predictive IntelliSense . Predictive IntelliSense innehåller förslag på fullständiga kommandon baserat på objekt från PSReadLine-historiken.
PSReadLine 2.2.2 utökar kraften i Predictive IntelliSense genom att lägga till stöd för plugin-moduler som använder avancerad logik för att ge förslag på fullständiga kommandon. Modulen Az.Tools.Predictor var det första plugin-programmet för Predictive IntelliSense. Den använder Machine Learning för att förutsäga vilket Azure PowerShell-kommando du vill köra och vilka parametrar du vill använda.
Mer information finns i Använda prediktorer.