Delen via


Tabvoltooiing gebruiken met 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 afhankelijk is van Ctrl-spatiebalk+. De functie MenuComplete geeft een lijst weer met overeenkomende voltooiingen onder de opdrachtregel.

De 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_Functionsvoor meer informatie.

Ingebouwde functies voor het voltooien van tabbladen

PowerShell maakt het voltooien van tabbladen mogelijk 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 het vindt. Wanneer u opnieuw op de toets Tab drukt, wordt er met elke druk een nieuwe beschikbare optie doorlopen.

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 intypen om een gedeeltelijke overeenkomst te krijgen. Als u bijvoorbeeld get-co typt en vervolgens op de Tab-toets drukt, toont PowerShell automatisch de volledige Get-Command-cmdlet, waarbij ook de hoofdletters worden aangepast naar de standaardvorm. Als u nogmaals op de Tab-toets drukt, vervangt PowerShell deze door de volgende overeenkomende cmdlet. 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 een typebeperking hebben.
  • Met tabvoltooiing worden verkorte cmdlets en functies uitgebreid. i-psdf<tab> retourneert bijvoorbeeld Import-PowerShellDataFile

PowerShell 7.2

  • Tabbladvoltooiing voor niet-gelokaliseerde about* artikelen oplossen
  • Los het probleem op waarbij splatting als positionele parameter in voltooiingen wordt behandeld
  • Voltooiingen toevoegen voor Help-trefwoorden op basis van opmerkingen
  • Voltooiing voor #Requires-instructies toevoegen
  • Tabbladvoltooiing toevoegen voor weergave- parameter van Format-* cmdlets
  • Ondersteuning toevoegen voor op klassen gebaseerde argumentvervolledigers

PowerShell 7.3

  • Tabbladvoltooiing herstellen in het scriptblok dat is opgegeven voor de ValidateScriptAttribute
  • Automatische tabvoltooiing toegevoegd voor loop labels na break en continue
  • Verbeter de voltooiing van hash-tabels in meerdere scenario's.
    • 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 aan ValidateSet-voltooiingen boven enums bij 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 void retourneren, zoals ([void]"")
    • Hiermee kunnen niet-standaardklasseconstructors worden weergegeven wanneer klassevoltooiing is gebaseerd op de AST

Andere manieren om tabvoltooiing van opdrachtparameters te verbeteren

Ingebouwde tabuitbreiding wordt beheerd 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.

De kenmerken ValidateSet of ArgumentCompletions met parameters gebruiken

Met het kenmerk ArgumentCompletions kunt u tabvoltooiingswaarden toevoegen aan een specifieke parameter. Het kenmerk ArgumentCompletions 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 ValidateSetworden de waarden echter niet gevalideerd.

Zie voor meer informatie:

Het kenmerk ArgumentCompleter of Register-ArgumentCompleter met parameters gebruiken

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

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

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

Voorspellende IntelliSense in PSReadLine

PSReadLine 2.1.0 heeft de functie Predictive IntelliSense geïntroduceerd. Predictive 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 Gebruik van predictorsvoor meer informatie.