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 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.
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 Tab . Program PowerShell automatycznie rozszerza nazwę na pierwsze dopasowanie, które znajdzie. Naciśnięcie Tab wielokrotnie przechodzi przez wszystkie dostępne opcje.
Gdy znak tyldy (~
) pojawi się na początku ścieżki, program PowerShell interpretuje go jako katalog główny użytkownika. Ta interpretacja jest powszechna w systemach Linux i macOS. Jednak wiele natywnych poleceń w systemie Windows nie używa tej interpretacji. Począwszy od programu PowerShell 7.5-preview.3 w systemie Windows, znak tyldy jest rozwijany w $HOME
przypadku korzystania z uzupełniania karty.
To rozszerzenie działa z poleceniami natywnymi systemu Windows.
Uzupełnianie nazw poleceń cmdlet
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 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 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 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 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 w systemie Windows to Ctrl+Spacja.
PS> fore<Ctrl-Space>
Po naciśnięciu 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 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ć 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 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 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 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