我正在编写一个函数,它基本上是一个它将调用的外部程序的便捷包装器。一些参数将被转发到外部程序,但不是全部。
我正在写
$ArgsToFwd = @()
switch ($PSBoundParameters.Keys) {
'--server' {$ArgsToFwd += @('--server',$server)}
'--userid' {$ArgsToFwd += @('--userid',$userid)}
...
}
Run Code Online (Sandbox Code Playgroud)
但后来我认为定义一个自定义参数属性可能会更好,它可以让我做类似的事情:
params(
[Parameter()]
[IsExternal()]
[string]$Server
)
#...
foreach ($key in $PSBoundParameters.Keys) {
if (<#a test for the custom [IsExternal] attribute#>) {
$ArgsToFwd += @($key, $PSBoundParameters[$key])
}
}
Run Code Online (Sandbox Code Playgroud)
但我不太明白。可以吗?
powershell ×1