about_Tab_Expansion

Krótki opis

Program PowerShell udostępnia uzupełnianie danych wejściowych w celu zapewnienia wskazówek, włączenia odnajdywania i przyspieszenia wprowadzania danych wejściowych. Nazwy poleceń, nazwy parametrów, wartości argumentów i ścieżki plików można wykonać, naciskając klawisz Tab .

Długi opis

Rozszerzenie karty jest kontrolowane przez funkcję wewnętrzną TabExpansion2. Ponieważ tę funkcję można zmodyfikować lub zastąpić, ta dyskusja jest przewodnikiem po zachowaniu domyślnej konfiguracji programu PowerShell.

Zachowanie rozszerzenia tabulatora można również zmodyfikować za pomocą funkcji Predykcyjnej funkcji IntelliSense modułu PSReadLine. Aby uzyskać więcej informacji, zobacz Predykcyjna funkcja IntelliSense.

Klawisz Tab jest domyślnym powiązaniem klucza w systemie Windows. Powiązanie kluczy można zmienić przy użyciu modułu PSReadLine lub aplikacji obsługującej program PowerShell. Powiązanie kluczy różni się na platformach innych niż Windows. Aby uzyskać więcej informacji, zobacz about_PSReadLine.

Uwaga

Jednym z ograniczeń procesu rozszerzania karty jest to, że karty są zawsze interpretowane jako próby ukończenia słowa. Jeśli skopiujesz i wklejesz przykłady poleceń do konsoli programu PowerShell, upewnij się, że przykład nie zawiera kart. Jeśli tak, wyniki będą nieprzewidywalne i prawie na pewno nie będą tym, co zamierzasz.

Uzupełnianie nazw plików i poleceń cmdlet

Aby automatycznie wypełnić nazwę pliku lub ścieżkę z dostępnych opcji, wpisz część nazwy i naciśnij klawisz Tab . Program PowerShell automatycznie rozszerza nazwę na pierwsze dopasowanie, które znajdzie. Naciśnięcie klawisza Tab wielokrotnie przechodzi przez wszystkie dostępne opcje.

Rozszerzenie tabulatora nazw poleceń cmdlet jest nieco inne. Aby użyć rozszerzenia tabulatora w nazwie polecenia cmdlet, wpisz całą pierwszą część nazwy (czasownika) i łącznik, który następuje po nim. Możesz podać więcej nazwy dla częściowego dopasowania. Jeśli na przykład wpiszesz get-co , a następnie naciśnij klawisz Tab , program PowerShell automatycznie rozwija go do Get-Command polecenia cmdlet. Zwróć uwagę, że zmienia również wielkość liter na ich standardowy formularz. Jeśli ponownie naciśniesz klawisz Tab , program PowerShell zastąpi go jedyną inną zgodną nazwą polecenia cmdlet, Get-Content.

Uwaga

Od programu PowerShell 7.0 karta rozszerza również skrócone polecenia cmdlet i funkcje. Na przykład i-psdf<tab> zwraca wartość Import-PowerShellDataFile.

Uzupełnianie karty działa również w celu rozpoznawania aliasów programu PowerShell i natywnych plików wykonywalnych.

Możesz wielokrotnie używać rozszerzenia tabulacji w tym samym wierszu. Na przykład możesz użyć rozszerzenia karty w nazwie Get-Content polecenia cmdlet, wprowadzając następujące polecenie:

Przykłady

PS> Get-Con<Tab>

Po naciśnięciu klawisza Tab polecenie zostanie rozwinięte w celu:

PS> Get-Content

Następnie można częściowo określić ścieżkę do pliku dziennika aktywnej instalacji i ponownie użyć rozszerzenia karty:

PS> Get-Content c:\windows\acts<Tab>

Po naciśnięciu klawisza Tab polecenie zostanie rozwinięte w celu:

PS> Get-Content C:\windows\actsetup.log

Element PSReadLine ma również funkcję uzupełniania menu. Domyślne powiązanie klawisza w systemie Windows to Ctrl+Spacja.

PS> fore<Ctrl-Space>

Po naciśnięciu klawisza Ctrl+Spacja program PowerShell wyświetla pełną listę pasujących wartości jako menu:

PS> foreach
foreach         ForEach-Object  foreach.cmd

W tym przykładzie ciąg "fore" jest dopasowany do foreach (alias programu PowerShell), ForEach-Object (polecenie cmdlet) i foreach.cmd (natywne polecenie). Użyj klawiszy strzałek, aby wybrać odpowiednią wartość.

Uzupełnianie argumentu parametru

Uzupełnianie karty może również pracować w celu ukończenia argumentów parametrów. Możesz użyć klawisza Tab , aby przejść przez listę możliwych wartości, które są prawidłowe dla określonego parametru. Aby uzyskać więcej informacji, zobacz about_Functions_Argument_Completion.

Uzupełnianie wartości wyliczonej

Program PowerShell 7.0 dodał obsługę uzupełniania tabulacji wyliczenia. Możesz użyć uzupełniania karty, aby wybrać odpowiednią wartość w dowolnym miejscu, w którym używasz wyliczenia. Na przykład:

enum Suits {
    Clubs = 0
    Diamonds = 1
    Hearts = 2
    Spades = 3
}

[Suits]$suit = 'c<Tab>

Wyliczone wartości są ciągami, więc wartość, która ma zostać ukończona, musi zaczynać się od znaku pojedynczego lub podwójnego cudzysłowu.

Po naciśnięciu klawisza Tab uzyskasz następujące wyniki:

[Suits]$suit = 'Clubs'

Uzupełnianie karty działa również z wyliczeniami platformy .NET.

[System.IO.FileAttributes]$attr = 'S<Tab><Tab>

Dwukrotne naciśnięcie klawisza Tab przechodzi przez dwie wartości rozpoczynające się literą S. Wynik końcowy to:

[System.IO.FileAttributes]$attr = 'System'

Począwszy od programu PowerShell 7.0, rozszerzenie karty zostało dodane dla wartości ValidateSet podczas przypisywania do zmiennej. Jeśli na przykład wpisywano następującą definicję zmiennej:

[ValidateSet('Chocolate', 'Strawberry', 'Vanilla')]
[string]$flavor = 'Strawberry'
$flavor = <tab>

Po naciśnięciu klawisza Tab uzyskasz następujący wynik:

$flavor = 'Chocolate'

Uzupełnianie tabulatorów dla słów kluczowych opartych na komentarzach

Począwszy od programu PowerShell 7.2, dodano obsługę uzupełniania kart parametrów i słów kluczowych pomocy opartej #requires na komentarzach.

Przykład instrukcji #requires

#requires -<Ctrl-Space>

Rozszerzenie menu pokazuje następujące opcje parametrów:

#requires -<Ctrl-Space>
Modules     PSEdition     RunAsAdministrator    Version

Przykład pomocy opartej na komentarzach

<#
    .<Ctrl-Space>

Rozszerzenie menu pokazuje następujące opcje słowa kluczowego:

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

Zobacz też