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.

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 i continue
  • 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

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 ValidateSetwartoś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).