前言:
在自定义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表作为参数