小编ala*_*lic的帖子

添加自定义 powershell 参数属性以启用过滤

我正在编写一个函数,它基本上是一个它将调用的外部程序的便捷包装器。一些参数将被转发到外部程序,但不是全部。

我正在写

$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

3
推荐指数
1
解决办法
208
查看次数

标签 统计

powershell ×1