前言:
在自定义PowerShell 函数时,使用 Hash 表作为参数,它相当于将 Hash 表中的键当作参数名,而键的值当作参数值。先直接看看这个以 Hash 表作为参数赋值给函数的示例:
$hash = @{
Path = $env:windir
Filter = ‘*.ps1’
Recurse = $true
ErrorAction = ‘SilentlyContinue’
}
Get-ChildItem @hash
Get-ChildItem 这个 cmdlet,相当于 DOS 下的 dir,列出目录下的子目录和文件。它有很多参数,其中 Path 表示要列出的目录路径;Filter 可以对列出的文件进行筛选,即只列出想要文件类型;Recurse 表示是否遍历,即是否列出子目录中的文件夹和文件。ErrorAction 参数表示如果出错了(遇到无法列出的内容时)应该怎么办。
那么正常情况下,我们应该使用的PowerShell脚本如下:
Get-ChildItem -Path $env:windir -Filter *.ps1 -Recurse -ErrorAction SilentlyContinue
这表示列出 Windows 安装目录下的所有的.ps1 后缀的文件。这个命令和我们最上面给出的 Hash 表作为参数的调用方式,效果完全一样。
所以,大家看出来了,以 Hash 表作为输入参数,它的键值对将分逐一分解成参数名和参数值赋值给函数。
本文章已结束,如转载请注明:汇站网 » PowerShell 函数以 Hash 表作为参数