Udostępnij za pośrednictwem


about_Tab_Expansion

Krótki opis

Program PowerShell zapewnia 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 ukończyć, naciskając klawisz Tab .

Długi opis

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

Klucz tabulacji jest domyślnym powiązaniem klucza w systemie Windows. To powiązanie kluczy można zmienić za pomocą 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 wklejasz 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ą to, 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 rozszerzy nazwę do pierwszego dopasowania znalezionego przez niego. Naciśnięcie klawisza Tab wielokrotnie spowoduje przejście 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 jest zgodny z nim. Możesz wypełnić więcej nazwy częściowego dopasowania. Jeśli na przykład wpiszesz get-co , a następnie naciśnij klawisz Tab , program PowerShell automatycznie rozszerzy go do Get-Command polecenia cmdlet (zwróć uwagę, że zmienia również wielkość liter na formularz standardowy). 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 kart działa również w celu rozpoznawania aliasów programu PowerShell i natywnych plików wykonywalnych.

Można wielokrotnie używać rozszerzenia tabulatora 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 rozwija się do:

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 rozwija się do:

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świetli pełną listę pasujących wartości jako menu:

PS> foreach
foreach         ForEach-Object  foreach.cmd

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

Uzupełnianie argumentu parametru

Uzupełnianie kart może również działać w celu ukończenia argumentów parametrów. Dzięki temu można użyć klawisza Tab , aby przejść przez listę możliwych wartości, które są prawidłowe dla niektórych parametrów.

Aby uzyskać więcej informacji, zobacz about_Functions_Argument_Completion.

Wyliczone uzupełnianie wartości

Począwszy od programu PowerShell 7.0, dodano obsługę uzupełniania kart wyliczenia. Możesz użyć uzupełniania karty, aby wybrać wartość, którą chcesz użyć w dowolnym miejscu 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 kart 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 do wartości podczas ValidateSet przypisywania do zmiennej. Jeśli na przykład wpisać następującą definicję zmiennej:

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

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

$flavor = 'Chocolate'

Zobacz też