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


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

См. также раздел