前言:
在自定义PowerShell
函数时,可以使用@PSBoundParameters
来将参数传递给另一函数。下面,我们来创建一个 Get
-BIOS
的函数,
function
Get
-BIOS
{
param
(
$ComputerName
,
$Path
)
Get
-WmiObject
-Class
Win32_BIOS
@PSBoundParameters
}
在这个函数中,我们并没有作任何实际的操作,只是将输入的参数打包传给了 Get
-WmiObject
这个函数。注意,我们之前在输出 PSBoundParameters
变量的值时,我们是在它的前面加了一个美元符号($),即$PSBoundParameters
,表示一个变量。而这里我们将参数和参数值传给另外一个函数时,我们在 PSBoundParameters
之前加的是一个@符号。这是重要的一点区别!
另外,我们还可以在将参数传递到另一个函数之前,对接收到的参数作一定的处理,比如去掉其它一个参数。
function
Get
-BIOS
{
param
(
$SomethingElse
,
$ComputerName
,
$Path
)
$null
= $PSBoundParameters
.Remove
(‘SomethingElse
’)
“The
parameter
$SomethingElse
still
exists
but
will
not
get
splatted
”
Get
-WmiObject
-Class
Win32_BIOS
@PSBoundParameters
}
看到了吗,我们在上面把 SomethingElse
这个参数从$PSBoundParameters
中删除掉了。这样,传递到 Get
-WmiObject
函数的参数中,就没有这个参数了。
转载请注明:汇站网 » PowerShell函数将参数传递给另一函数