Delen via


Tabvoltooiing gebruiken in de shell

PowerShell biedt voltooiingen voor invoer om hints te bieden, detectie in te schakelen en invoerinvoer te versnellen. Opdrachtnamen, parameternamen, argumentwaarden en bestandspaden kunnen allemaal worden voltooid door op de Tab-toets te drukken.

De Tab-toets is de standaardsleutelbinding in Windows. PSReadLine biedt ook een MenuComplete functie die is gebonden aan Ctrl-spatiebalk+. De MenuComplete functie geeft een lijst weer met overeenkomende voltooiingen onder de opdrachtregel.

Deze sleutelbindingen kunnen worden gewijzigd met behulp van PSReadLine-cmdlets of de toepassing die als host fungeert voor PowerShell. Sleutelbindingen kunnen verschillen op niet-Windows-platforms. Zie about_PSReadLine_Functions voor meer informatie.

Ingebouwde functies voor het voltooien van tabbladen

PowerShell heeft tabvoltooiing ingeschakeld voor veel aspecten van de opdrachtregelervaring.

Voltooiing van bestandsnaam

Als u automatisch een bestandsnaam of pad wilt invullen vanuit de beschikbare opties, typt u een deel van de naam en drukt u op de Tab-toets . PowerShell breidt de naam automatisch uit naar de eerste overeenkomst die wordt gevonden. Als u nogmaals op de Tab-toets drukt, worden alle beschikbare opties met elke toets ingedrukt.

Voltooiing van opdracht- en parameternaam

De tabuitbreiding van cmdlet-namen is iets anders. Als u tabuitbreiding wilt gebruiken voor een cmdlet-naam, typt u het hele eerste deel van de naam (het werkwoord) en het afbreekstreepje dat erop volgt. U kunt meer van de naam invullen voor een gedeeltelijke overeenkomst. Als u bijvoorbeeld typt get-co en vervolgens op de Tab-toets drukt, wordt dit automatisch uitgebreid naar de Get-Command cmdlet (u ziet ook dat het hoofdlettergebruik wordt gewijzigd in het standaardformulier). Als u nogmaals op de Tab-toets drukt, vervangt PowerShell dit door de enige andere overeenkomende cmdlet-naam. Get-Content Tabvoltooiing werkt ook om PowerShell-aliassen en systeemeigen uitvoerbare bestanden op te lossen.

In de volgende afbeelding ziet u voorbeelden van het voltooien van tabbladen en menu's.

Voorbeelden van tab- en menuvoltooiing

Andere verbeteringen voor het voltooien van tabbladen

Elke nieuwe versie van PowerShell bevat verbeteringen in het voltooien van tabbladen waarmee bugs worden opgelost en de bruikbaarheid wordt verbeterd.

PowerShell 7.0

  • Met tabvoltooiing worden variabelentoewijzingen opgelost die enums zijn of waarvoor een type is beperkt
  • Met tabvoltooiing worden verkorte cmdlets en functies uitgebreid. Retourneert bijvoorbeeld i-psdf<tab>Import-PowerShellDataFile

PowerShell 7.2

  • Tabbladvoltooiing voor niet-gelokaliseerde about* onderwerpen oplossen
  • Probleem opgelost dat splatting wordt behandeld als positionele parameter in voltooiingen
  • Voltooiingen toevoegen voor Help-trefwoorden op basis van opmerkingen
  • Voltooiing voor #requires instructies toevoegen
  • Tabbladvoltooiing toevoegen voor weergaveparameter van Format-* cmdlets
  • Ondersteuning toevoegen voor op klassen gebaseerde argumentvervolledigers

PowerShell 7.3

  • Tabbladvoltooiing herstellen binnen het scriptblok dat is opgegeven voor de ValidateScriptAttribute
  • Tabvoltooiing toegevoegd voor luslabels na break en continue
  • Hashtable-voltooiing in meerdere scenario's verbeteren
    • Parameter-splatting
    • Parameter Argumenten voor Invoke-CimMethod
    • FilterHashtable-parameter voor Get-WinEvent
    • Eigenschapsparameter voor de CIM-cmdlets
    • Verwijdert duplicaten uit voltooiingsscenario's voor leden
  • Ondersteuning voor slashes in voltooiing van netwerkshare (UNC-pad)
  • Automatische voltooiing van leden verbeteren
  • Prioriteit geven ValidateSet aan voltooiingen boven opsommingen voor parameters
  • Ondersteuning voor typedeductie toevoegen voor algemene methoden met typeparameters
  • Typedeductie en voltooiingen verbeteren
    • Hiermee kunnen methoden worden weergegeven in voltooiingsresultaten voor ForEach-Object -MemberName
    • Voorkomt voltooiing van expressies die een ongeldige waarde retourneren, zoals ([void](""))
    • Hiermee kunnen niet-standaardklasseconstructors worden weergegeven wanneer de voltooiing van de klasse is gebaseerd op de AST

Andere manieren om tabvoltooiing van opdrachtparameters te verbeteren

Ingebouwde tabuitbreiding wordt bepaald door de interne functie TabExpansion of TabExpansion2. Het is mogelijk om functies of modules te maken die het standaardgedrag van deze functies vervangen. U vindt voorbeelden in de PowerShell Gallery door te zoeken naar het trefwoord TabExpansion .

ValidateSet De of ArgumentCompletions kenmerken gebruiken met parameters

Met ArgumentCompletions het kenmerk kunt u tabvoltooiingswaarden toevoegen aan een specifieke parameter. Het ArgumentCompletions kenmerk is vergelijkbaar met ValidateSet. Bij beide kenmerken wordt een lijst met waarden weergegeven wanneer de gebruiker op Tab drukt na de parameternaam. In tegenstelling tot ValidateSetdat worden de waarden echter niet gevalideerd.

Zie voor meer informatie:

ArgumentCompleter Het kenmerk of Register-ArgumentCompleter met parameters gebruiken

Een argument completer is een scriptblok of functie die dynamische tabvoltooiing biedt voor parameterwaarden.

Met ArgumentCompleter het kenmerk kunt u een functie registreren die tabvoltooiingswaarden voor de parameter biedt. De functie argument completer moet beschikbaar zijn voor de functie die de parameter met het ArgumentCompleter kenmerk bevat. Meestal wordt de functie gedefinieerd in hetzelfde script of dezelfde module.

Zie ArgumentCompleter voor meer informatie.

De Register-ArgumentCompleter cmdlet registreert een scriptblok als argument completer-functie tijdens runtime voor elke opdracht die u opgeeft. Hiermee kunt u argument completers definiëren buiten het script of de module of voor systeemeigen opdrachten. Zie Register-ArgumentCompleter voor meer informatie.

Voorspellende IntelliSense in PSReadLine

PSReadLine 2.1.0 heeft de functie Predictive IntelliSense geïntroduceerd. Voorspellende IntelliSense biedt suggesties voor volledige opdrachten op basis van items uit uw PSReadLine-geschiedenis .

PSReadLine 2.2.2 breidt de kracht van Predictive IntelliSense uit door ondersteuning toe te voegen voor invoegtoepassingsmodules die gebruikmaken van geavanceerde logica om suggesties voor volledige opdrachten te bieden. De Module Az.Tools.Predictor was de eerste invoegtoepassing voor Predictive IntelliSense. Machine Learning wordt gebruikt om te voorspellen welke Azure PowerShell-opdracht u wilt uitvoeren en welke parameters u wilt gebruiken.

Zie Predictors gebruiken voor meer informatie.