about_Function_Provider
Имя поставщика
Function
Диски
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
Копирование функции
Эта команда копирует prompt
функцию oldPrompt
в эффективное создание нового имени блока скрипта, связанного с функцией запроса.
Таким образом можно сохранить исходную функцию 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:
См. также
PowerShell