Freigeben über


Vervollständigung mit der TAB-TASTE verwenden

Durch die Vervollständigung der Eingaben erleichtert PowerShell das Bereitstellen von Hinweisen, das Aktivieren von Ermittlungen und das Beschleunigen der Eingabe. Mit der TAB-TASTE können Sie Befehlsnamen, Parameternamen, Argumentwerte und Dateipfade rasch vervollständigen.

Die TAB-TASTE ist die Standardtastenzuordnung unter Windows. PSReadLine bietet außerdem eine MenuComplete-Funktion, die mit STRG+Leertaste gebunden ist. Mithilfe der MenuComplete-Function können Sie eine Liste der zugehörigen Vervollständigungen unterhalb der Befehlszeile anzeigen.

Diese Tastenzuordnungen können Sie mithilfe von PSReadLine-Cmdlets oder der Anwendung ändern, die PowerShell hostet. Bei Nicht-Windows-Plattformen können die Tasten anders zugeordnet sein. Weitere Informationen finden Sie unter about_PSReadLine_Functions.

Integrierte Vervollständigungsfunktionen

PowerShell aktiviert die Vervollständigung über die TAB-TASTE für viele Aspekte der Befehlszeilennutzung.

Dateinamen vervollständigen

Soll ein Dateiname oder Pfad automatisch aus den verfügbaren Optionen ausgefüllt werden, geben Sie einen Teil des Namens ein, und drücken Sie die TAB-TASTE. PowerShell vervollständigt den Namen automatisch entsprechend der ersten gefundenen Übereinstimmung. Drücken Sie die TAB-TASTE erneut, um alle verfügbaren Optionen zu durchlaufen.

Befehls- und Parameternamen vervollständigen

Für Cmdletnamen funktioniert Erweiterung mit der TAB-TASTE etwas anders. Um Erweiterung mit der TAB-TASTE für einen Cmdletnamen zu verwenden, geben Sie den gesamten ersten Teil des Namens (das Verb) und den darauf folgenden Bindestrich ein. Sie können weitere Zeichen des Namens für eine Teilübereinstimmung eingeben. Wenn Sie beispielsweise get-co eingeben und dann die TAB-TASTE drücken, erweitert PowerShell diese Eingabe automatisch zum Cmdlet Get-Command. Beachten Sie bitte, dass dabei auch die Groß-/Kleinschreibung der Buchstaben zur Standardform geändert wird. Wenn Sie die TAB-TASTE erneut drücken, ersetzt PowerShell diesen Cmdletnamen durch den einzigen anderen passenden Cmdletnamen, Get-Content. Das Vervollständigen funktioniert auch zum Auflösen von PowerShell-Aliasen und nativen ausführbaren Dateien.

Die folgende Abbildung zeigt Beispiele für die Vervollständigung mit TAB-TASTE und Menü.

Vervollständigung mit TAB und Menü

Weitere Verbesserungen der Vervollständigung mit der TAB-TASTE

In jeder neuen Version von PowerShell wird die Vervollständigung mit der TAB-TASTE weiter verbessert; wir beheben Fehler und erhöhen die Benutzerfreundlichkeit.

PowerShell 7.0

  • Die Vervollständigung mit der TAB-TASTE löst jetzt Variablenzuordnungen auf, die Enumerationen oder typbeschränkt sind.
  • Durch die Vervollständigung mit der TAB-TASTE werden gekürzte Cmdlets und Funktionen komplett angezeigt. i-psdf<tab> wird beispielsweise zu Import-PowerShellDataFile

PowerShell 7.2

  • Wir haben das Problem bei der Vervollständigung mit der TAB-TASTE bei nicht lokalisierten about*-Themen behoben.
  • Auch das Problem, bei dem Splatting bei der Vervollständigung als Positionsparameter behandelt wurde, ist nun behoben.
  • Wir haben Vervollständigungen für kommentarbasierte Hilfeschlüsselwörter hinzugefügt.
  • Die Vervollständigung für #requires-Anweisungen wurde ebenfalls hinzugefügt.
  • Die Vervollständigung mit der TAB-TASTE wurde für den View-Parameter von Format-* Cmdlets hinzugefügt.
  • Auch Unterstützung für klassenbasierte Argumentvervollständigungen haben wir hinzugefügt.

PowerShell 7.3

  • Die Vervollständigung mit der TAB-TASTE innerhalb des für das ValidateScriptAttribute angegebenen Skriptblocks wurde hinzugefügt.
  • Die Vervollständigung mit der TAB-TASTE für Schleifenbezeichnungen nach break und continue wurde ebenfalls hinzugefügt.
  • Die Hashtable-Vervollständigung wurde in mehreren Szenarien verbessert.
    • Parametersplatting
    • Arguments-Parameter für Invoke-CimMethod
    • FilterHashtable-Parameter für Get-WinEvent
    • Property-Parameter für CIM-Cmdlets
    • Entfernt Duplikate aus Szenarien mit Membervervollständigung
  • Schrägstriche werden jetzt bei der Vervollständigung der Netzwerkfreigabe (UNC-Pfad) unterstützt.
  • Die automatische Elemente-Vervollständigung wurde verbessert.
  • Die Vervollständigung von ValidateSet wird nun für Parameter gegenüber Enumerationen priorisiert.
  • Wir haben Typrückschlussunterstützung für generische Methoden mit Typparametern hinzugefügt.
  • Typrückschluss und Vervollständigungen wurden verbessert
    • Ermöglicht die Darstellung von Methoden in Abschlussergebnissen für ForEach-Object -MemberName
    • Verhindert die Vervollständigung von Ausdrücken, die leer ausgegeben werden, z. B. ([void](""))
    • Ermöglicht die Anzeige nicht standardmäßiger Klassenkonstruktoren bei AST-basiertem Klassenabschluss

Weitere Möglichkeiten zum Verbessern der Vervollständigung von Befehlsparametern mit der TAB-TASTE

Die Erweiterung mit der TAB-TASTE wird durch die interne Funktion TabExpansion oder TabExpansion2 gesteuert. Sie können Funktionen oder Module erstellen, die das Standardverhalten dieser Funktionen ersetzen. Beispiele finden Sie im PowerShell-Katalog. Suchen Sie nach dem Schlüsselwort TabExpansion.

Attribute ValidateSet oder ArgumentCompletions mit Parametern verwenden

Mit dem Attribut ArgumentCompletions können Sie einem bestimmten Parameter Werte für die Vervollständigung mit der TAB-TASTE hinzufügen. Das Attribut ArgumentCompletions weist Ähnlichkeit mit dem Attribut ValidateSet auf. Für beide Attribute können Sie eine Liste der Werte vorgeben, die angezeigt werden sollen, wenn der Benutzer nach dem Parameternamen die TAB-TASTE drückt. Im Unterschied zu ValidateSet werden die Werte hier jedoch nicht überprüft.

Weitere Informationen findest du unter

Attribute ArgumentCompleter oder Register-ArgumentCompleter mit Parametern verwenden

Ein Argumentvervollständiger ist ein Skriptblock oder eine Funktion, die die dynamische Vervollständigung für Parameterwerte ermöglicht.

Mit dem Attribut ArgumentCompleter können Sie eine Funktion zur Vervollständigung von Parametern mit der TAB-TASTE registrieren. Die Argumentvervollständigungsfunktion muss für die Funktion verfügbar sein, die den Parameter mit dem Attribut ArgumentCompleter enthält. In der Regel wird die Funktion im selben Skript oder Modul definiert.

Weitere Informationen finden Sie unter ArgumentCompleter.

Das Cmdlet Register-ArgumentCompleter registriert einen Skriptblock als Argumentvervollständigungsfunktion bei der Laufzeit für jeden Befehl, den Sie angeben. Auf diese Weise können Sie Argumentvervollständiger außerhalb des Skripts oder Moduls oder für systemeigene Befehle definieren. Weitere Informationen finden Sie unter Register-ArgumentCompleter.

Predictive IntelliSense in PSReadLine

Mit PSReadLine 2.1.0 haben wir das Predictive IntelliSense-Feature eingeführt. Predictive IntelliSense liefert Vorschläge zur Vervollständigung von Befehlen basierend auf Elementen aus Ihrem PSReadLine-Verlauf.

In PSReadLine 2.2.2 ist Predictive IntelliSense noch leistungsfähiger. Nun werden zur Erstellung der Befehlsvorschläge Plug-In-Module unterstützt, die erweiterte Logik verwenden. Das Az.Tools.Predictor-Modul war das erste Plug-In für Predictive IntelliSense. Es verwendet Machine Learning, um vorherzusagen, welchen Azure PowerShell-Befehl Sie ausführen wollen, und welche Parameter Sie verwenden möchten.

Weitere Informationen finden Sie unter Verwenden von Prädiktoren.