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

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 och continue
  • 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

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