about_Tab_Expansion
Kurze Beschreibung
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.
Lange Beschreibung
Die Tabstopperweiterung wird durch die interne Funktion TabExpansion2 gesteuert. Da diese Funktion geändert oder überschrieben werden kann, ist diese Erläuterung eine Anleitung für das Verhalten der Standardkonfiguration von PowerShell.
Das Verhalten der Registerkartenerweiterung kann auch durch das Feature Predictive IntelliSense des PSReadLine-Moduls geändert werden. Weitere Informationen finden Sie unter Predictive IntelliSense.
Die TAB-TASTE ist die Standardtastenzuordnung unter Windows. Sie können die Keybinding mithilfe des PSReadLine-Moduls oder der Anwendung ändern, die PowerShell hosten. Die Schlüsselbindung unterscheidet sich auf Nicht-Windows-Plattformen. Weitere Informationen finden Sie unter about_PSReadLine.
Hinweis
Eine Einschränkung für Erweiterung mit der TAB-TASTE besteht darin, dass Tabulatorzeichen immer als Versuche interpretiert werden, ein Wort zu vervollständigen. Wenn Sie Befehlsbeispiele kopieren und in eine PowerShell-Konsole einfügen, stellen Sie sicher, dass das Beispiel keine Registerkarten enthält. Wenn dies der Fall ist, werden die Ergebnisse unvorhersehbar sein und mit ziemlicher Sicherheit nicht das sein, was Sie beabsichtigt haben.
Vervollständigung des Datei- und Cmdletnamens
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. Durch drücken der TAB-TASTE werden alle verfügbaren Optionen wiederholt durchlaufen.
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 z. B. eingeben get-co
und dann die TAB-TASTE drücken, erweitert PowerShell dies automatisch auf das Get-Command
Cmdlet. Beachten Sie, dass auch die Groß-/Kleinschreibung von Buchstaben in die Standardform geändert wird. Wenn Sie die TAB-TASTE erneut drücken, ersetzt PowerShell diesen Cmdletnamen durch den einzigen anderen passenden Cmdletnamen, Get-Content
.
Hinweis
Ab PowerShell 7.0 erweitert Tab auch abgekürzte Cmdlets und Funktionen. i-psdf<tab>
gibt beispielsweise Import-PowerShellDataFile
zurück.
Die Tabstopp-Vervollständigung funktioniert auch, um PowerShell-Alias und native ausführbare Dateien aufzulösen.
Sie können Erweiterung mit der TAB-TASTE wiederholt in derselben Zeile verwenden. Beispielsweise können Sie die Erweiterung mit der TAB-TASTE für den Namen des Cmdlets Get-Content
verwenden, indem Sie Folgendes eingeben:
Beispiele
PS> Get-Con<Tab>
Wenn Sie die TAB-TASTE drücken, wird der Befehlsname erweitert zu:
PS> Get-Content
Sie können dann den Pfad zur Protokolldatei für das aktive Setup teilweise eingeben und erneut Erweiterung mit der TAB-TASTE verwenden:
PS> Get-Content c:\windows\acts<Tab>
Wenn Sie die TAB-TASTE drücken, wird der Befehlsname erweitert zu:
PS> Get-Content C:\windows\actsetup.log
PSReadLine verfügt auch über eine Funktion zum Vervollständigen von Menüs. Die Standardtastenbindung unter Windows ist STRG+LEERTASTE.
PS> fore<Ctrl-Space>
Wenn Sie STRG+LEERTASTE drücken, zeigt PowerShell die vollständige Liste der übereinstimmenden Werte als Menü an:
PS> foreach
foreach ForEach-Object foreach.cmd
In diesem Beispiel wird die Zeichenfolge "fore" mit (PowerShell-Alias), ForEach-Object
(Cmdlet) und foreach.cmd
(nativer Befehl) abgeglichen foreach
. Verwenden Sie die Pfeiltasten, um den gewünschten Wert auszuwählen.
Vervollständigung des Parameterarguments
Die Tabstopp-Vervollständigung kann auch zum Abschließen von Parameterargumenten verwendet werden. Sie können die TAB-TASTE verwenden, um eine Liste möglicher Werte zu durchlaufen, die für einige Parameter gültig sind. Weitere Informationen finden Sie unter about_Functions_Argument_Completion.
Vervollständigung des aufgezählten Werts
PowerShell 7.0 hat Unterstützung für die Vervollständigung von Enumerationen mit Registerkarten hinzugefügt. Sie können die Tabstopp-Vervollständigung verwenden, um den gewünschten Wert überall dort auszuwählen, wo Sie eine Enumeration verwenden. Beispiel:
enum Suits {
Clubs = 0
Diamonds = 1
Hearts = 2
Spades = 3
}
[Suits]$suit = 'c<Tab>
Enumerierte Werte sind Zeichenfolgen, sodass der zu erledigende Wert mit einem einfachen oder doppelten Anführungszeichen beginnen muss.
Wenn Sie die TAB-TASTE drücken, erhalten Sie die folgenden Ergebnisse:
[Suits]$suit = 'Clubs'
Die Vervollständigung der Registerkarte funktioniert auch mit .NET-Enumerationen.
[System.IO.FileAttributes]$attr = 'S<Tab><Tab>
Wenn Sie zweimal die TAB-TASTE drücken, durchlaufen Sie die beiden Werte, die mit dem Buchstaben S
beginnen. Das Endergebnis ist:
[System.IO.FileAttributes]$attr = 'System'
Ab PowerShell 7.0 wurde die Registerkartenerweiterung für die Werte von ValidateSet
beim Zuweisen zu einer Variablen hinzugefügt. Wenn Sie beispielsweise die folgende Variablendefinition eingegeben haben:
[ValidateSet('Chocolate', 'Strawberry', 'Vanilla')]
[string]$flavor = 'Strawberry'
$flavor = <tab>
Wenn Sie die TAB-TASTE drücken, erhalten Sie das folgende Ergebnis:
$flavor = 'Chocolate'
Tabstoppvervollständigungen für kommentarbasierte Schlüsselwörter
Ab PowerShell 7.2 wurde Unterstützung für die Tabstoppvervollständigung der #requires
Parameter und der Schlüsselwörter für die kommentarbasierte Hilfe hinzugefügt.
Beispiel für #requires
-Anweisung
#requires -<Ctrl-Space>
Die Menüerweiterung zeigt die folgenden Parameteroptionen an:
#requires -<Ctrl-Space>
Modules PSEdition RunAsAdministrator Version
Beispiel für kommentarbasierte Hilfe
<#
.<Ctrl-Space>
Die Menüerweiterung zeigt die folgenden Schlüsselwort (keyword) Optionen:
<#
.COMPONENT
COMPONENT EXTERNALHELP FUNCTIONALITY NOTES REMOTEHELPRUNSPACE
DESCRIPTION FORWARDHELPCATEGORY INPUTS OUTPUTS ROLE
EXAMPLE FORWARDHELPTARGETNAME LINK PARAMETER SYNOPSIS