Поделиться через


about_Tab_Expansion

Краткое описание

PowerShell позволяет заполнять входные данные для предоставления указаний, включения обнаружения и ускорения ввода. Имена команд, имена параметров, значения аргументов и пути к файлам можно заполнить, нажав клавишу TAB.

Подробное описание

Расширение табуляции управляется внутренней функцией TabExpansion2. Так как ее можно изменить или переопределить, приведенные инструкции распространяются на стандартную конфигурацию PowerShell.

Поведение расширения вкладок также можно изменить с помощью функции Predictive IntelliSense модуля PSReadLine. Дополнительные сведения см. в разделе "Прогнозная технология 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 вкладка также расширяет сокращенные командлеты и функции. Например, 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 можно использовать для цикла по списку возможных значений, допустимых для некоторых параметров. Дополнительные сведения см. в about_Functions_Argument_Completion.

Перечисленное завершение значения

PowerShell 7.0 добавила поддержку завершения перечисления вкладок. Вы можете использовать завершение вкладки, чтобы выбрать нужное значение в любом месте, где вы используете перечисление. Например:

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'

Завершение вкладок для ключевых слов на основе комментариев

Начиная с 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

См. также