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 Taberweiterung 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 Tabstopperweiterung kann auch durch das Predictive IntelliSense-Feature 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 Keybindung mithilfe des PSReadLine-Moduls oder der Anwendung ändern, die PowerShell hosten soll. 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 in eine PowerShell-Konsole kopieren und einfügen, stellen Sie sicher, dass das Beispiel keine Registerkarten enthält. Wenn dies der Fall ist, werden die Ergebnisse unvorhersehbar sein und werden fast sicher nicht das sein, was Sie beabsichtigt haben.
Abschluss des Datei- und Cmdlet-Namens
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 wiederholt alle verfügbaren Optionen durchlaufen.
Wenn das Tildezeichen (~
) am Anfang eines Pfads angezeigt wird, interpretiert PowerShell es als Startverzeichnis des Benutzers. Diese Interpretation ist auf Linux- und macOS-Systemen üblich. Viele systemeigene Befehle unter Windows verwenden diese Interpretation jedoch nicht. Ab PowerShell 7.5-preview.3 unter Windows wird das Tildezeichen bei Verwendung des Tabstoppabschlusses auf $HOME
das Zeichen erweitert.
Diese Erweiterung funktioniert mit systemeigenen Windows-Befehlen.
Abschluss des Cmdlet-Namens
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 die get-co
eingeben und dann drücken, erweitert PowerShell diese automatisch auf das Get-Command
Cmdlet. Beachten Sie, dass auch die Groß-/Kleinschreibung von Buchstaben in ihr Standardformular 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.
Der Abschluss der Registerkarte funktioniert auch, um PowerShell-Alias und systemeigene 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 ein Menüabschlussfeature. 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 foreach
(PowerShell-Alias), ForEach-Object
(Cmdlet) und foreach.cmd
(nativer Befehl) übereinstimmen. Verwenden Sie die Pfeiltasten, um den gewünschten Wert auszuwählen.
Abschluss des Parameterarguments
Der Tabstoppabschluss kann auch funktionieren, um Parameterargumente abzuschließen. 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.
Enumerated value completion
PowerShell 7.0 hat Unterstützung für den Tabstoppabschluss von Enumerationen hinzugefügt. Sie können den Tabstoppabschluss verwenden, um den gewünschten Wert an einer beliebigen Stelle auszuwählen, an der Sie eine Enumeration verwenden. Zum Beispiel:
enum Suits {
Clubs = 0
Diamonds = 1
Hearts = 2
Spades = 3
}
[Suits]$suit = 'c<Tab>
Aufzählungswerte sind Zeichenfolgen, sodass der zu erfüllende Wert mit einem einzelnen oder doppelten Anführungszeichen beginnen muss.
Wenn Sie die TAB-TASTE drücken, erhalten Sie die folgenden Ergebnisse:
[Suits]$suit = 'Clubs'
Der Abschluss der Registerkarte funktioniert auch mit .NET-Enumerationen.
[System.IO.FileAttributes]$attr = 'S<Tab><Tab>
Wenn Sie zweimal die TAB-TASTE drücken, werden die beiden Werte durchlaufen, die mit dem Buchstaben S
beginnen. Das Endergebnis lautet:
[System.IO.FileAttributes]$attr = 'System'
Ab PowerShell 7.0 wurde die Registerkartenerweiterung für die Werte ValidateSet
der Zuweisung zu einer Variablen hinzugefügt. Wenn Sie beispielsweise die folgende Variablendefinition eingeben:
[ValidateSet('Chocolate', 'Strawberry', 'Vanilla')]
[string]$flavor = 'Strawberry'
$flavor = <tab>
Wenn Sie die TAB-TASTE drücken, erhalten Sie das folgende Ergebnis:
$flavor = 'Chocolate'
Registerkartenabschluss für kommentarbasierte Schlüsselwörter
Ab PowerShell 7.2 wurde Unterstützung für den Tabstoppabschluss der #requires
Parameter und die Schlüsselwörter für die kommentarbasierte Hilfe hinzugefügt.
Beispiel für #requires
Eine Anweisung
#requires -<Ctrl-Space>
Die Menüerweiterung zeigt die folgenden Parameteroptionen:
#requires -<Ctrl-Space>
Modules PSEdition RunAsAdministrator Version
Beispiel für kommentarbasierte Hilfe
<#
.<Ctrl-Space>
Die Menüerweiterung zeigt die folgenden Schlüsselwortoptionen an:
<#
.COMPONENT
COMPONENT EXTERNALHELP FUNCTIONALITY NOTES REMOTEHELPRUNSPACE
DESCRIPTION FORWARDHELPCATEGORY INPUTS OUTPUTS ROLE
EXAMPLE FORWARDHELPTARGETNAME LINK PARAMETER SYNOPSIS