about_Function_Provider
Имя поставщика
Функция
Диски
Function:
Возможности
ShouldProcess
Краткое описание
Предоставляет доступ к функциям, определенным в PowerShell.
Подробное описание
Поставщик функций PowerShell позволяет получать, добавлять, изменять, очищать и удалять функции и фильтры в PowerShell.
Функция представляет собой именованный блок кода, выполняющий некоторое действие. Если ввести имя функции, выполняется код этой функции. Фильтр представляет собой именованный блок кода, устанавливающий условия выполнения некоторого действия. Вместо условия можно ввести имя фильтра, например в команде Where-Object
.
Диск функции — это неструктурированное пространство имен, содержащее только объекты функции и фильтра. Ни функции, ни фильтры не имеют дочерних элементов.
Поставщик функции поддерживает следующие командлеты, которые рассматриваются в этой статье.
Типы, предоставляемые этим поставщиком
Каждая функция является экземпляром класса System.Management.Automation.FunctionInfo . Каждый фильтр является экземпляром класса System.Management.Automation.FilterInfo .
Навигация по диску функции
Поставщик функции предоставляет свое хранилище данных на Function:
диске. Для работы с функциями можно изменить расположение на Function:
диск (Set-Location Function:
). Вы также можете работать с другого диска PowerShell. Чтобы сослаться на функцию из другого расположения, используйте имя диска (Function:
) в пути.
Set-Location Function:
Чтобы вернуться к диску файловой системы, введите имя диска. Например, введите:
Set-Location C:
Вы также можете работать с поставщиком функций с любого другого диска PowerShell. Чтобы сослаться на функцию из другого расположения, используйте имя Function:
диска в пути.
Примечание
PowerShell использует псевдонимы, чтобы обеспечить привычный способ работы с путями поставщика. Такие команды, как dir
и ls
, теперь являются псевдонимами для Get-ChildItem, cd
являются псевдонимом для Set-Location. и pwd
является псевдонимом для Get-Location.
Получение функций
Эта команда возвращает список всех функций в текущем сеансе. Эту команду можно использовать с любого диска PowerShell.
Get-ChildItem -Path Function:
Поставщик функции не имеет контейнеров, поэтому приведенная выше команда имеет тот же эффект при использовании с Get-ChildItem
.
Get-ChildItem -Path Function:
Определение функции можно получить, перейдя к свойству Definition , как показано ниже.
(Get-Item -Path function:more).Definition
Вы также можете получить определение функции, используя путь к поставщику с префиксом знака доллара ($
).
$function:more
Получение выбранных функций
Эта команда получает функцию man
с Function:
диска. Для получения функции используется Get-Item
командлет . Оператор конвейера (|
) отправляет результат в Format-Table
. Параметр -Wrap
направляет текст, который не помещается в строке, на следующую строку. Параметр -Autosize
изменяет размер столбцов таблицы в соответствии с текстом.
Get-Item -Path man | Format-Table -Wrap -Autosize
Работа с путями поставщика функций
Обе эти команды получают функцию с именем c:
. Первую команду можно использовать на любом диске. Вторая команда используется на Function:
диске. Поскольку имя функции оканчивается двоеточием, то есть имеет синтаксис имени диска, необходимо указать в пути имя диска. Function:
На диске можно использовать любой формат. Во второй команде точка (.
) представляет текущее расположение.
PS C:\> Get-Item -Path Function:c:
PS Function:\> Get-Item -Path .\c:
Создание функции
Эта команда использует New-Item
командлет для создания функции с именем Win32:
.
Выражение в фигурных скобках является блоком скрипта, который представлен именем функции.
New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}
Вы также можете создать функцию, введя ее в командной строке PowerShell. Например, tpe Function:Win32: {Set-Location C:\Windows\System32}
. Если вы используете Function:
диск, его имя можно опустить.
Удаление функции
Эта команда удаляет функцию more:
из текущего сеанса.
Remove-Item Function:more:
Изменение функции
Эта команда использует Set-Item
командлет для изменения prompt
функции таким образом, чтобы она отображала время до пути.
Set-Item -Path Function:prompt -Value {
'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
}
Переименование функции
Эта команда использует Rename-Item
командлет для изменения имени функции на help
gh
.
Rename-Item -Path Function:help -NewName gh
Копирование функции
Эта команда копирует функцию oldPrompt
в prompt
, фактически создавая новое имя для блока скрипта, связанного с функцией prompt.
Таким образом можно сохранить исходную функцию prompt, если планируется изменить ее.
Свойство Options новой функции имеет значение None
. Чтобы изменить значение свойства Options, используйте .Set-Item
Copy-Item -Path Function:prompt -Destination Function:oldPrompt
Динамические параметры
Динамические параметры — это параметры командлета, которые добавляются поставщиком PowerShell и доступны только при использовании командлета на диске с поддержкой поставщика.
Параметры <[System.Management.Automation.ScopedItemOptions]>
Определяет значение свойства Options функции.
None
: нет параметров. Значение по умолчанию —None
.Constant
: невозможно удалить функцию и изменить ее свойства.Constant
доступен только при создании функции. Параметр существующей функции нельзя изменить наConstant
.Private
: функция видна только в текущем область- (не в дочерних областях).
ReadOnly
: свойства функции нельзя изменить только с помощью-Force
параметра . Можно использовать дляRemove-Item
удаления функции.AllScope
: функция копируется во все новые области, которые создаются.
Поддерживаемые командлеты
Использование конвейера
Командлеты поставщика принимают входные данные конвейера. Конвейер можно использовать для упрощения задачи, отправляя данные поставщика из одного командлета в другой. Дополнительные сведения об использовании конвейера с командлетами поставщика см. в справочниках по командлетам, приведенным в этой статье.
Получение справки
Начиная с Windows PowerShell 3.0, стали доступны настраиваемые разделы справки по командлетам поставщика, в которых объясняется поведение этих командлетов на диске файловой системы.
Чтобы получить разделы справки, настроенные для диска файловой системы, выполните команду Get-Help на диске файловой системы или используйте -Path
параметр Get-Help , чтобы указать диск файловой системы.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path function: