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.

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 TAB-TASTE eingeben get-co 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 Sbeginnen. 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üsselwort (keyword)

Ab PowerShell 7.2 wurde unterstützung für den Tab-Abschluss der #requires Parameter und die Schlüsselwort (keyword)s für 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üsselwort (keyword) Optionen:

 <#
    .COMPONENT
COMPONENT      EXTERNALHELP           FUNCTIONALITY     NOTES         REMOTEHELPRUNSPACE
DESCRIPTION    FORWARDHELPCATEGORY    INPUTS            OUTPUTS       ROLE
EXAMPLE        FORWARDHELPTARGETNAME  LINK              PARAMETER     SYNOPSIS

Weitere Informationen