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


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 командлет для изменения имени функции на helpgh.

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:

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