Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Имя поставщика
Функция
Drives
Function:
Capabilities
ДолженОбрабатывать
Краткое описание
Предоставляет доступ к функциям, определенным в PowerShell.
Подробное описание
Поставщик функций PowerShell позволяет получать, добавлять, изменять, очищать и удалять функции и фильтры в PowerShell.
Функция — это именованный блок кода, выполняющий действие. При вводе имени функции код в функции запускается. Фильтр — это именованный блок кода, который устанавливает условия для действия. Имя фильтра можно ввести вместо условия, например в команде Where-Object.
Диск функции — это плоское пространство имен, содержащее только объекты функции и фильтра. Ни функции, ни фильтры не имеют дочерних элементов.
Поставщик функции поддерживает следующие командлеты, описанные в этой статье.
- Get-Location
- Настройка расположения
- get-Item
- нового элемента
- Удалить-Предмет
- Очистить-Элемент
Типы, предоставляемые этим поставщиком
Каждая функция является экземпляром класса System.Management.Automation.FunctionInfo. Каждый фильтр является экземпляром класса System.Management.Automation.FilterInfo.
Навигация по диску функции
Поставщик функции 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}
Сферы применения
Как и переменные, функции принадлежат определенной области. При создании функции она доступна только в области, в которой она была создана. Чтобы сделать функцию доступной, при создании функции используйте модификатор области. Для получения дополнительной информации см. about_Scopes.
В следующем примере модификатор области Global: используется для создания функции в глобальной области.
function New-Function {
param(
[string] $Name,
[scriptblock] $Script
)
$lp = "Function:\Global:$($Name)"
Set-Item -LiteralPath $lp -Value $Script -PassThru -Force
}
New-Function -Name 'Win32:' -Script { Set-Location C:\Windows\System32 }
Без модификатора области Global: функция будет создана в локальной области. Когда New-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в эффективное создание нового имени для скриптблока, связанного с функцией запроса.
Эту функцию можно использовать для сохранения исходной функции запроса, если планируется изменить ее.
Свойство опций 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