Dela via


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 alla slutföras genom att trycka på Tabbtangenten.

Den Tab-tangenten är standardtangentbindningen på 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 möjliggjort autokomplettering med tab 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å Tabb-tangenten. 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 ange mer av namnet för en delvis 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 tangenten 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.

Exempel på flik- och menykomplettering

Andra förbättringar av flikkomplettering

Varje ny version av PowerShell innehåller förbättringar av flikkomplettering som åtgärdar buggar och förbättrar användbarheten.

PowerShell 7.0

  • Tabbkomplettering löser variabeltilldelningar som är enummer eller typbegränsade.
  • Tabbavslut expanderar förkortade cmdletar och funktioner. Till exempel returnerar i-psdf<tab>Import-PowerShellDataFile

PowerShell 7.2

  • Åtgärda att fliken har slutförts för oallokerade about* ämnen
  • Åtgärda att splatting behandlas som positionsparameter i autokompletteringar
  • Lägg till fullbordanden för kommentarsbaserade hjälpnyckelord
  • Lägg till komplettering för #Requires satser
  • Lägg till flikkomplettering för Visa-parametern för Format-* cmdletar
  • Lägg till stöd för klassbaserade argumentkompletterare

PowerShell 7.3

  • Åtgärda tabbkomplettering i skriptblocket som angetts för ValidateScriptAttribute
  • Tabbkomplettering har lagts till för loopetiketter efter break och continue
  • Förbättra hashtabellslutförande i flera scenarier
    • Parameterspridning
    • Argumentparameter för Invoke-CimMethod
    • FilterHashtable-parameter för Get-WinEvent
    • Egenskapsparameter för CIM-cmdletar
    • Tar bort dubbletter från scenarier för fullföljande av medlemskap
  • Stöd för snedstreck i nätverksresursers slutförande (UNC-sökväg)
  • Förbättra automatisk ifyllnad för medlemmar
  • Prioritera ValidateSet kompletteringar 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

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 kan hitta 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 ValidateSetverifieras 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 argumentkompletterare-funktion i körningstid för valfritt kommando 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.