about_Function_Provider

提供程序名称

函数

驱动器

Function:

功能

ShouldProcess

简短说明

提供对 PowerShell 中定义的函数的访问。

详细说明

PowerShell 函数 提供程序允许获取、添加、更改、清除和删除 PowerShell 中的函数和筛选器。

函数是用于执行某项操作的命名的代码块。 在键入函数名称后,将运行该函数中的代码。 筛选器是用于建立操作条件的命名的代码块。 可以键入筛选器的名称来表示条件,如在命令 Where-Object 中。

Function 驱动器是一个平面命名空间,仅包含函数和筛选器对象。 函数和筛选器都没有子项。

函数 提供程序支持本文中介绍的以下 cmdlet。

此提供程序公开的类型

每个函数都是 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的别名, cdSet-Location 的别名pwd和 是Get-Location 的别名

获取函数

此命令将获取当前会话中所有函数的列表。 可以在任何 PowerShell 驱动器中使用此命令。

Get-ChildItem -Path Function:

函数提供程序没有容器,因此,当与一起使用时,上面的命令具有相同的效果 Get-ChildItem

Get-ChildItem -Path Function:

可以通过访问 定义 属性来检索函数的定义,如下所示。

(Get-Item -Path function:more).Definition

还可以使用以美元符号 () 前缀的提供程序路径来检索函数的定义 $

$function:more

正在获取选定函数

此命令获取 man 驱动器中的函数 Function: 。 它使用 Get-Item cmdlet 来获取函数。 管道运算符 (| 将结果发送到) 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 cmdlet 创建名为的函数 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 cmdlet 更改函数 prompt ,以便它显示路径之前的时间。

Set-Item -Path Function:prompt -Value {
  'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
  }

重命名函数

此命令使用 Rename-Item cmdlet 将函数的名称 help 更改为 gh

Rename-Item -Path Function:help -NewName gh

复制函数

此命令将函数复制到 ,有效地为与 prompt 函数关联的脚本块 prompt oldPrompt 创建新名称。 如果计划更改原始 prompt 函数,你可以使用此命令来保存该函数。 新函数的 Options 属性的值为 None 。 若要更改 Options 属性的值 ,请使用 Set-Item

Copy-Item -Path Function:prompt -Destination Function:oldPrompt

动态参数

动态参数是由 PowerShell 提供程序添加的 cmdlet 参数,仅在启用提供程序的驱动器中使用 cmdlet 时可用。

选项<[System.Management.Automation.ScopedItemOptions]>

确定函数 的 Options 属性的值。

  • None:无选项。 None 为默认值。
  • Constant:无法删除函数,并且无法更改其属性。 Constant 仅在创建函数时可用。 不能将现有函数的选项更改为 Constant
  • Private:函数仅在当前范围内可见
  • (不在子作用域) 。
  • ReadOnly:除使用参数外,不能更改函数的属性 -Force 。 您可以使用 Remove-Item 删除函数。
  • AllScope:该函数将复制到任何创建的新作用域。

支持的 cmdlet

使用管道

提供程序 cmdlet 接受管道输入。 可以通过将提供程序数据从一个 cmdlet 发送到另一个提供程序 cmdlet 来使用管道来简化任务。 若要详细了解如何将管道与提供程序 cmdlet 配合使用,请参阅本文中提供的 cmdlet 参考。

获取帮助

从 Windows PowerShell 3.0 开始,你可以获取有关提供程序 cmdlet 的自定义帮助主题,它们介绍了这些 cmdlet 在文件系统驱动器中的行为方式。

若要获取针对文件系统驱动器进行自定义的帮助主题,请在文件系统驱动器中运行get-help命令,或使用 get-help 的 -Path 参数来指定文件系统驱动器。

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path function:

另请参阅

about_Functions

about_Providers