Używanie uzupełniania tabulatorem w powłoce
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 .
Klawisz Tab jest domyślnym powiązaniem klucza w systemie Windows. Funkcja PSReadLine udostępnia również funkcję powiązaną MenuComplete
z klawiszem Ctrl+Spacja. Funkcja MenuComplete
wyświetla listę pasujących uzupełnień poniżej wiersza polecenia.
Te powiązania kluczy można zmienić przy użyciu poleceń cmdlet PSReadLine lub aplikacji hostujących program PowerShell. Powiązania kluczy mogą być różne na platformach innych niż Windows. Aby uzyskać więcej informacji, zobacz about_PSReadLine_Functions.
Wbudowane funkcje uzupełniania kart
Program PowerShell włączył uzupełnianie kart dla wielu aspektów środowiska wiersza polecenia.
Uzupełnianie nazwy pliku
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. Ponowne naciśnięcie klawisza Tab powoduje przejście przez wszystkie dostępne opcje za pomocą każdego naciśnięcia klawisza.
Uzupełnianie nazw poleceń i parametrów
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
i naciśniesz klawisz Tab , program PowerShell automatycznie rozszerzy go do Get-Command
polecenia cmdlet (zwróć uwagę, że również zmienia 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
. Uzupełnianie kart działa również w celu rozpoznawania aliasów programu PowerShell i natywnych plików wykonywalnych.
Na poniższej ilustracji przedstawiono przykłady uzupełniania kart i menu.
Inne ulepszenia uzupełniania kart
Każda nowa wersja programu PowerShell zawiera ulepszenia uzupełniania kart, które naprawiają błędy i zwiększają użyteczność.
PowerShell 7.0
- Uzupełnianie karty rozwiązuje przypisania zmiennych, które są wyliczeniami lub są ograniczone typ
- Uzupełnianie karty rozszerza skrócone polecenia cmdlet i funkcje. Na przykład
i-psdf<tab>
zwraca wartośćImport-PowerShellDataFile
PowerShell 7.2
- Naprawianie uzupełniania kart dla nielokalizowanych
about*
tematów - Naprawianie rozplatania traktowanego jako parametru pozycyjnego w zakończeniach
- Dodawanie uzupełniania dla słów kluczowych Pomocy opartej na komentarzach
- Dodawanie uzupełniania instrukcji
#requires
- Dodawanie uzupełniania tabulatora dla widoku parametru
Format-*
poleceń cmdlet - Dodano obsługę uzupełniania argumentów opartych na klasach
PowerShell 7.3
- Poprawiono uzupełnianie kart w bloku skryptu określonym dla elementu
ValidateScriptAttribute
- Dodano uzupełnianie kart dla etykiet pętli po
break
icontinue
- Ulepszanie uzupełniania tabeli skrótu w wielu scenariuszach
- Rozplatanie parametrów
- Parametr argumentów dla
Invoke-CimMethod
- FilterHashtable parametr dla
Get-WinEvent
- Parametr właściwości dla poleceń cmdlet modelu CIM
- Usuwa duplikaty ze scenariuszy uzupełniania składowych
- Obsługa ukośników w ramach uzupełniania udziału sieciowego (ścieżki UNC)
- Ulepszanie automatycznego uzupełniania elementów członkowskich
- Określanie
ValidateSet
priorytetów uzupełniania w wyliczeniach dla parametrów - Dodano obsługę wnioskowania typów dla metod ogólnych z parametrami typu
- Ulepszanie wnioskowania i uzupełniania typów
- Umożliwia pokazywanie metod w wynikach uzupełniania dla
ForEach-Object -MemberName
- Zapobiega uzupełnianiu w wyrażeniach, które zwracają wartość void , na przykład (
[void]("")
) - Zezwala konstruktorom klasy innej niż domyślna na wyświetlanie, gdy uzupełnianie klasy jest oparte na AST
- Umożliwia pokazywanie metod w wynikach uzupełniania dla
Inne sposoby ulepszania uzupełniania tabulatorów parametrów polecenia
Wbudowane rozszerzenie karty jest kontrolowane przez funkcję wewnętrzną TabExpansion lub TabExpansion2. Istnieje możliwość utworzenia funkcji lub modułów, które zastępują domyślne zachowanie tych funkcji. Przykłady można znaleźć w Galeria programu PowerShell, wyszukując słowo kluczowe TabExpansion.
ValidateSet
Używanie atrybutów lub ArgumentCompletions
z parametrami
Atrybut ArgumentCompletions
umożliwia dodawanie wartości uzupełniania tabulatora do określonego parametru.
Atrybut ArgumentCompletions
jest podobny do ValidateSet
. Oba atrybuty pobiera listę wartości, które mają być prezentowane, gdy użytkownik naciska klawisz Tab po nazwie parametru. Jednak w przeciwieństwie do ValidateSet
wartości wartości nie są weryfikowane.
Aby uzyskać więcej informacji, zobacz:
Używanie atrybutu ArgumentCompleter
lub Register-ArgumentCompleter
z parametrami
Completer argumentu to blok skryptu lub funkcja, która zapewnia dynamiczne uzupełnianie tabulacji dla wartości parametrów.
Atrybut ArgumentCompleter
umożliwia zarejestrowanie funkcji, która udostępnia wartości uzupełniania tabulacji dla parametru . Funkcja completer argumentów musi być dostępna dla funkcji zawierającej parametr z atrybutem ArgumentCompleter
. Zwykle funkcja jest definiowana w tym samym skrycie lub module.
Aby uzyskać więcej informacji, zobacz ArgumentCompleter.
Polecenie Register-ArgumentCompleter
cmdlet rejestruje blok skryptu jako funkcję uzupełniania argumentów w czasie wykonywania dla dowolnego określonego polecenia. Dzięki temu można definiować moduły uzupełniania argumentów poza skryptem lub modułem lub dla poleceń natywnych. Aby uzyskać więcej informacji, zobacz Register-ArgumentCompleter.
Predykcyjna funkcja IntelliSense w funkcji PSReadLine
Program PSReadLine 2.1.0 wprowadził funkcję Predykcyjnej funkcji IntelliSense . Predykcyjna funkcja IntelliSense udostępnia sugestie dotyczące pełnych poleceń opartych na elementach z historii psReadLine .
Funkcja PSReadLine 2.2.2 rozszerza możliwości funkcji Predykcyjnej funkcji IntelliSense, dodając obsługę modułów wtyczek korzystających z zaawansowanej logiki w celu udostępnienia sugestii dotyczących pełnych poleceń. Moduł Az.Tools.Predictor był pierwszą wtyczką dla funkcji Predictive IntelliSense. Używa Edukacja Maszyny do przewidywania polecenia programu Azure PowerShell, które chcesz uruchomić, i parametrów, których chcesz użyć.
Aby uzyskać więcej informacji, zobacz Using predictors (Używanie predyktorów).