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
Чтобы получить определение функции с дефисом (-
), заключите значение после знака доллара в фигурные скобки.
${function:Clear-Host}
Получение выбранных функций
Эта команда получает функцию 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: