除了运行 cmdlet 外,您还可以在 Windows PowerShell 中运行函数。Windows PowerShell 附带了一些内置函数,而且您可以添加从其他用户那里获得的函数以及编写自己的函数。

关于函数

函数是 Windows PowerShell 中的一类命令。正如运行 cmdlet 一样,键入函数名称即可运行函数。函数可以具有参数,这如同 cmdlet 一样。正如 cmdlet 一样,函数可以将 .NET 对象作为输入,并将 .NET 对象作为输出返回。事实上,函数几乎可以完成 cmdlet 可以执行的所有操作。

函数的最大优点是它们非常容易编写。与用 C# 编写的 cmdlet 不同,函数仅仅是 Windows PowerShell 命令与表达式的命名组合。只要能够在 Windows PowerShell 中键入命令,就会编写函数。

查找函数

函数就是命令,因此,若要查找函数,请使用 Get-Command cmdlet。

例如,若要查找会话中的所有函数,请键入:

get-command -CommandType function

Windows PowerShell 还附带了一个 Function: 驱动器,其中包含您的会话中的所有函数。若要在 Function: 驱动器中导航,可以使用用于在文件系统驱动器中导航的相同方法。

若要进入函数驱动器,请键入:

cd function:

若要显示函数驱动器中的函数,请键入:

dir function:

运行函数

若要运行函数,只需键入函数名称。例如,若要运行 Clear-Host 函数,请键入:

clear-host

在 Windows PowerShell 控制台中,Clear-Host 函数会删除控制台窗口内的所有文本。在其他主机程序中,该函数可能会有不同的行为或者不起作用。

若要使用函数的参数,请键入参数名称,参数名称前面键入连字符,后面键入值,正如键入 cmdlet 的参数一样。

例如,Help 函数与 Get-Help cmdlet 具有相同的参数,该函数每次显示一页帮助主题。若要使用 Help 函数仅获取 Get-Service cmdlet 的帮助主题中的示例,请键入:

help -name get-service -examples

获取函数帮助

函数可以有帮助主题。若要查找某个函数的帮助主题,请使用 Get-Help cmdlet。这是您用来获取 cmdlet 帮助的同一个 cmdlet。

例如,若要获取 Disable-PSRemoting 函数的帮助,请键入:

get-help Disable-PSRemoting

可以使用 Get-Help cmdlet 的所有参数来获取函数帮助。例如,若要仅获取 Disable-PSRemoting 函数的帮助主题中的示例,请键入:

get-help Disable-PSRemoting -example

编写函数

函数是命令与表达式的命名组合。若要编写简单函数,请使用以下格式。

function <name> { <commands> }

只需键入 function 及函数的名称并用大括号 ({ }) 将命令括起来。

例如,如果重复键入某个特定命令,如 get-help get-member -examples,通过编写运行该命令的函数,可以节省时间。以下称为 GMEX 的函数运行该命令。

function GMEX {get-help get-member -examples}

在 Windows PowerShell 提示符处键入该函数(或者在本主题中复制该函数并进行粘贴)并按 Enter 后,您就可以在会话中使用该函数了。若要运行该函数,请键入 GMEX

这是一个简单函数,但是只需要再有几行代码,您就可以添加参数,让参数成为可选参数或强制参数,添加用户消息并为您的函数添加帮助主题。进一步了解 Windows PowerShell 后,您就可以编写具有 cmdlet 全部功能的高级函数了。

有关编写函数的详细信息,请参阅 about_Functionsabout_Comment_Based_Helpabout_Functions_Advanced

保存函数

打开 Windows PowerShell 时,您处于 Windows PowerShell 会话中。在关闭 Windows PowerShell 窗口(或者键入 Exit 结束该会话)前,该会话将一直进行。除非您将项保存到磁盘上的文件内或者注册表中,否则在您的会话结束时,您在会话中创建的项会被删除。

若要保存您编写的函数,以使它们在将来的 Windows PowerShell 会话中可用,请创建一个 Windows PowerShell 配置文件并将您的函数保存到该配置文件中。

有关详细信息,请参阅 about_Profiles

另请参阅




目录