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


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:

См. также