除了运行 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 后,您就可以在会话中使用该函数了。若要运行该函数,请键入
这是一个简单函数,但是只需要再有几行代码,您就可以添加参数,让参数成为可选参数或强制参数,添加用户消息并为您的函数添加帮助主题。进一步了解 Windows PowerShell 后,您就可以编写具有 cmdlet 全部功能的高级函数了。
有关编写函数的详细信息,请参阅 about_Functions、about_Comment_Based_Help 和 about_Functions_Advanced。
保存函数
打开 Windows PowerShell 时,您处于 Windows PowerShell 会话中。在关闭 Windows PowerShell 窗口(或者键入
若要保存您编写的函数,以使它们在将来的 Windows PowerShell 会话中可用,请创建一个 Windows PowerShell 配置文件并将您的函数保存到该配置文件中。
有关详细信息,请参阅 about_Profiles。
另请参阅