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.
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
encontinue
- 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
- Hiermee kunnen methoden worden weergegeven in voltooiingsresultaten voor
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 ValidateSet
dat 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.