Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
PowerShell предоставляет завершения входных данных, чтобы подсказать, облегчить обнаружение и ускорить ввод. Имена команд, имена параметров, значения аргументов и пути к файлам можно выполнить, нажав клавишу TAB.
Ключ вкладки — это привязка ключа по умолчанию в Windows.
PSReadLine также предоставляет функцию, привязанную MenuComplete
к ctrl+Space. Функция MenuComplete
отображает список соответствующих завершений под командной строкой.
Эти привязки ключей можно изменить с помощью командлетов PSReadLine или приложения, на котором размещена PowerShell. Привязки ключей могут отличаться на платформах, отличных от Windows. Дополнительные сведения см. в разделе about_PSReadLine_Functions.
Встроенные функции завершения вкладок
PowerShell включила завершение вкладки для многих аспектов интерфейса командной строки.
Завершение имени файла
Чтобы автоматически ввести имя файла или путь из доступных вариантов, введите часть имени и нажмите клавишу TAB. PowerShell автоматически расширяет имя до первого найденного совпадения. Нажатие клавиши TAB снова переключает между всеми доступными вариантами при каждом нажатии клавиши.
Завершение имени команды и параметра
Расширение имен командлетов с помощью клавиши Tab немного отличается. Чтобы использовать расширение табуляции для имени командлета, введите сначала всю первую часть имени (глагол), а затем дефис. Вы можете ввести больше частей имени для частичного совпадения. Например, если вы вводите get-co
и нажимаете клавишу Tab, PowerShell автоматически развертывает его в этот Get-Command
командлет (обратите внимание, что он также изменяет регистр букв на стандартную форму). Если снова нажать клавишу табуляции , PowerShell заменит это единственным другим подходящим именем командлета, Get-Content
. Завершение вкладок также работает для разрешения псевдонимов PowerShell и собственных исполняемых файлов.
На следующем рисунке показаны примеры завершения вкладки и меню.
Другие улучшения завершения вкладки
Каждая новая версия PowerShell включает улучшения завершения вкладок, которые устраняют ошибки и повышают удобство использования.
PowerShell 7.0
- Завершение вкладки разрешает назначения переменных, которые являются перечислениями или ограничены типом
- Завершение вкладки расширяет сокращенные командлеты и функции. Например, результат выполнения
i-psdf<tab>
— этоImport-PowerShellDataFile
PowerShell 7.2
- Исправление завершения вкладки для нелокализованных
about*
разделов - Исправление сплаттинга, рассматриваемого как позиционный параметр в автозавершениях
- Добавьте завершения для ключевых слов справки, основанных на комментариях
- Добавление завершения для
#Requires
инструкций - Добавить автозаполнение вкладки для параметра View командлетов
Format-*
- Добавление поддержки завершенных аргументов на основе классов
PowerShell 7.3
- Исправление завершения вкладки в блоке скрипта, указанном для
ValidateScriptAttribute
- Добавлено завершение вкладки для меток цикла после
break
иcontinue
- Улучшение завершения хэш-таблицы в нескольких сценариях
- Сплаттинг параметров
- Параметр Arguments для
Invoke-CimMethod
- Параметр FilterHashtable для
Get-WinEvent
- Параметр Property для командлетов CIM
- Удаление дублей из сценариев завершения для участников
- Поддержка косой черты вперед в завершении общего сетевого ресурса (UNC-путь)
- Улучшение автоматического завершения члена
- Дайте приоритет завершениям
ValidateSet
над перечислениями для параметров - Добавление поддержки вывода типов для универсальных методов с параметрами типа
- Улучшение вывода типов и завершения
- Позволяет отображать методы в результатах завершения для
ForEach-Object -MemberName
. - Запрещает завершение выражений, возвращающих пустоту (
[void]("")
) - Разрешает отображение конструкторов классов, отличных от используемых по умолчанию, если завершение класса основано на AST.
- Позволяет отображать методы в результатах завершения для
Другие способы улучшения завершения вкладки параметров команды
Встроенное расширение вкладок управляется внутренней функцией TabExpansion или TabExpansion2. Можно создать функции или модули, которые заменяют поведение этих функций по умолчанию. Примеры можно найти в коллекции PowerShell, выполнив поиск ключевого слова TabExpansion .
Использование атрибутов ValidateSet
и ArgumentCompletions
с параметрами
Атрибут ArgumentCompletions
позволяет добавлять значения завершения табуляции в определенный параметр.
Атрибут ArgumentCompletions
похож на ValidateSet
. Оба атрибута принимают список значений, которые будут представлены, когда пользователь нажимает клавишу TAB после имени параметра. Однако, в отличие от ValidateSet
, значения не проверяются.
Дополнительные сведения можно найти здесь
Использование атрибута ArgumentCompleter
или Register-ArgumentCompleter
с параметрами
Полный аргумент — это блок скрипта или функция, которая обеспечивает динамическое завершение вкладки для значений параметров.
Атрибут ArgumentCompleter
позволяет зарегистрировать функцию, которая предоставляет значения завершения вкладок для параметра. Функция завершения аргумента должна быть доступна функции, содержащей параметр с атрибутом ArgumentCompleter
. Обычно функция определяется в одном сценарии или модуле.
Дополнительные сведения см. в разделе ArgumentCompleter.
Командлет Register-ArgumentCompleter
регистрирует блок скрипта в качестве функции завершения аргумента во время выполнения для любой указанной команды. Это позволяет определять завершающие аргументы вне скрипта или модуля, а также для встроенных команд. Дополнительные сведения см. в разделе Register-ArgumentCompleter.
Предсказующая IntelliSense в PSReadLine
PSReadLine 2.1.0 представила функцию Predictive IntelliSense . Предиктивный IntelliSense предоставляет предложения для полных команд на основе элементов из истории PSReadLine.
PSReadLine 2.2.2 расширяет возможности Predictive IntelliSense, добавив поддержку подключаемых модулей, использующих расширенную логику для предоставления предложений для полных команд. Модуль Az.Tools.Predictor был первым подключаемым модулем для Predictive IntelliSense. Он использует машинное обучение для прогнозирования того, какую команду Azure PowerShell вы хотите запустить, и параметры, которые вы хотите использовать.
Дополнительные сведения см. в разделе "Использование прогнозаторов".
PowerShell