about_Tab_Expansion
Краткое описание
PowerShell позволяет заполнять входные данные для предоставления указаний, включения обнаружения и ускорения ввода. Имена команд, имена параметров, значения аргументов и пути к файлам можно заполнить, нажав клавишу TAB.
Подробное описание
Расширение табуляции управляется внутренней функцией TabExpansion2. Так как ее можно изменить или переопределить, приведенные инструкции распространяются на стандартную конфигурацию PowerShell.
Поведение расширения табуляции также можно изменить с помощью функции прогнозной технологии IntelliSense модуля PSReadLine. Дополнительные сведения см. в разделе Predictive IntelliSense.
Клавиша TAB — это настраиваемое сочетание клавиш по умолчанию в Windows. Привязку клавиш можно изменить с помощью модуля PSReadLine или приложения, в котором размещается PowerShell. Привязка клавиш отличается на платформах, отличных от Windows. Дополнительные сведения см. в разделе about_PSReadLine.
Примечание
Единственным ограничением этого процесса является то, что символы табуляции принимаются за попытки завершения слова. При копировании и вставке примеров команд в консоль PowerShell убедитесь, что пример не содержит вкладок. Если это так, результаты будут непредсказуемыми и почти наверняка не будут то, что вы намеревались.
Завершение имени файла и командлета
Для автоматического завершения имени файла или пути из доступных вариантов введите часть имени и нажмите клавишу TAB. PowerShell автоматически расширяет имя до первого совпадения. При нажатии клавиши TAB выполняется циклический перебор всех доступных вариантов.
Расширение имен командлетов по клавише TAB происходит немного иначе. Чтобы использовать расширение по клавише TAB для имени командлета, введите всю первую часть имени (глагол) и дефис после нее. Можно указать дополнительную часть имени для поиска частичного совпадения.
Например, если ввести get-co
и нажать клавишу TAB , PowerShell автоматически развернет этот параметр до командлета Get-Command
. Обратите внимание, что он также изменяет регистр букв на их стандартную форму. Если нажать клавишу TAB еще раз, PowerShell заменит результат на Get-Content
, единственное другое подходящее имя командлета.
Примечание
В PowerShell 7.0 tab также расширяет сокращенные командлеты и функции. Например, i-psdf<tab>
возвращает Import-PowerShellDataFile
.
Заполнение табуляции также позволяет разрешить псевдоним PowerShell и собственные исполняемые файлы.
Расширение по клавише TAB можно использовать несколько раз в одной строке. Например, вы можете использовать завершение по клавише TAB для имени командлета Get-Content
:
Примеры
PS> Get-Con<Tab>
При нажатии клавиши TAB команда расширяет до следующей:
PS> Get-Content
После этого можно указать часть пути к файлу журнала активной установки и снова воспользоваться описанной функцией:
PS> Get-Content c:\windows\acts<Tab>
При нажатии клавиши TAB команда расширяет до следующей:
PS> Get-Content C:\windows\actsetup.log
В PSReadLine также есть функция завершения меню. По умолчанию в Windows используется сочетание клавиш CTRL+ПРОБЕЛ.
PS> fore<Ctrl-Space>
При нажатии клавиши CTRL+ПРОБЕЛ PowerShell отображает полный список соответствующих значений в виде меню:
PS> foreach
foreach ForEach-Object foreach.cmd
В этом примере строка fore сопоставляется foreach
с (псевдоним PowerShell), ForEach-Object
(командлет) и foreach.cmd
(собственная команда). Используйте клавиши со стрелками, чтобы выбрать нужное значение.
Завершение аргумента параметра
Завершение нажатия клавиши TAB также может работать для заполнения аргументов параметров. Клавишу TAB можно использовать для циклического перебора списка возможных значений, допустимых для некоторых параметров. Дополнительные сведения см. в разделе about_Functions_Argument_Completion.
Завершение перечисленного значения
В PowerShell 7.0 добавлена поддержка завершения перечислений с помощью табуляции. Вы можете использовать завершение нажатия клавиши TAB, чтобы выбрать нужное значение в любом месте перечисления. Пример:
enum Suits {
Clubs = 0
Diamonds = 1
Hearts = 2
Spades = 3
}
[Suits]$suit = 'c<Tab>
Перечислимые значения являются строками, поэтому завершаемое значение должно начинаться с одинарной или двойной кавычки.
При нажатии клавиши TAB вы получите следующие результаты:
[Suits]$suit = 'Clubs'
Заполнение табуляции также работает с перечислениями .NET.
[System.IO.FileAttributes]$attr = 'S<Tab><Tab>
Нажатие клавиши TAB дважды проходит по двум значениям, которые начинаются с буквы S
. Конечный результат:
[System.IO.FileAttributes]$attr = 'System'
Начиная с PowerShell 7.0, при назначении переменной было добавлено расширение табуляции для значений ValidateSet
. Например, если вы вводите следующее определение переменной:
[ValidateSet('Chocolate', 'Strawberry', 'Vanilla')]
[string]$flavor = 'Strawberry'
$flavor = <tab>
При нажатии клавиши TAB вы получите следующий результат:
$flavor = 'Chocolate'
Заполнение нажатием клавиши TAB для ключевых слов на основе комментариев
Начиная с PowerShell 7.2, добавлена поддержка заполнения #requires
параметров табуляции и ключевых слов для справки на основе комментариев.
Пример для #requires
оператора
#requires -<Ctrl-Space>
В расширении меню отображаются следующие параметры:
#requires -<Ctrl-Space>
Modules PSEdition RunAsAdministrator Version
Пример справки на основе комментариев
<#
.<Ctrl-Space>
В расширении меню отображаются следующие ключевое слово параметры:
<#
.COMPONENT
COMPONENT EXTERNALHELP FUNCTIONALITY NOTES REMOTEHELPRUNSPACE
DESCRIPTION FORWARDHELPCATEGORY INPUTS OUTPUTS ROLE
EXAMPLE FORWARDHELPTARGETNAME LINK PARAMETER SYNOPSIS