当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 关于函数提供者

作者:精品下载站 日期:2024-12-14 02:22:29 浏览:13 分类:玩电脑

关于函数提供者


提供商名称

功能

驱动器

Function:

能力

应该处理

简短描述

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

详细说明

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

函数是执行操作的命名代码块。当您键入函数名称时,函数中的代码就会运行。过滤器是一个命名的代码块,它为操作建立条件。您可以键入过滤器的名称来代替条件,例如在 Where-Object 命令中。

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

函数提供程序支持以下 cmdlet,本文将介绍这些内容。

  • Get-Location
  • Set-Location
  • Get-Item
  • New-Item
  • Remove-Item
  • Clear-Item

该提供者公开的类型

每个函数都是 System.Management.Automation.FunctionInfo 类的一个实例。每个过滤器都是 System.Management.Automation.FilterInfo 类的一个实例。

导航功能驱动器

Function 提供程序在 Function: 驱动器中公开其数据存储。要使用函数,您可以将位置更改为 Function: 驱动器 (Set-Location Function:)。或者,您可以从另一个 PowerShell 驱动器进行工作。要从其他位置引用函数,请在路径中使用驱动器名称 (Function:)。

Set-Location Function:

要返回到文件系统驱动器,请键入驱动器名称。例如,输入:

Set-Location C:

您还可以使用任何其他 PowerShell 驱动器中的函数提供程序。要从其他位置引用函数,请在路径中使用驱动器名称 Function:

笔记

PowerShell 使用别名让您能够以熟悉的方式使用提供程序路径。 dirls 等命令现在是 Get-ChildItem 的别名,cd 是 Set-Location 的别名。 pwd 是 Get-Location 的别名。

获取函数

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

Get-ChildItem -Path Function:

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

Get-ChildItem -Path Function:

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

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

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

$function:more

要检索名称中包含破折号 (-) 的函数的定义,请将美元符号后面的值括在大括号中。

${function:Clear-Host}

获取选定的函数

此命令从 Function: 驱动器获取 man 函数。它使用 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 函数复制到 oldPrompt,从而有效地为与提示函数关联的脚本块创建一个新名称。如果您打算更改它,可以使用它来保存原始提示功能。新函数的 Options 属性的值为 None。要更改 Options 属性的值,请使用 Set-Item

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

动态参数

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

选项

确定函数的 Options 属性的值。

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

支持的 Cmdlet

  • New-Item

  • Set-Item

使用管道

提供程序 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_函数
  • about_Providers

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯