gpt4 book ai didi

powershell - 有没有办法定义一个无参数的powershell参数集?

转载 作者:行者123 更新时间:2023-12-03 23:52:11 25 4
gpt4 key购买 nike

我为库模块编写了一些相当复杂的函数,可以通过多种不同的方式调用它。但是,实际上可以将它们全部默认,但是当我尝试不带参数调用我的函数时,调用失败,因为无法确定参数集。

我想定义一个不包含任何参数的参数集,这样不带参数的调用就会成功。这是很难做到的,因为 ParameterSetName 是 Parameter 属性的一个属性,并且不可能没有任何属性。

我尝试了放置在 param block 上的 CmdletBinding 属性的 DefaultParameterSet 属性,但似乎没有任何效果。似乎在那里定义的参数集名称必须实际存在,以便 Powershell 默认使用它。

目前,我对这个用例的最佳近似是定义其中一个参数集没有强制参数,但是当输入空字符串或空值时,这些参数集会失败,我希望不会出现这种情况。

这可能吗?

最佳答案

当然是。只需指定一个不使用的默认参数集名称:

function Foo {
[CmdletBinding(DefaultParameterSetName='x')]
Param(
[Parameter(Mandatory=$true, ParameterSetName='y')]$a,
[Parameter(Mandatory=$false, ParameterSetName='y')]$b,
[Parameter(Mandatory=$true, ParameterSetName='z')]$c,
[Parameter(Mandatory=$false)]$d
)

"`$a: $a"
"`$b: $b"
"`$c: $c"
"`$d: $d"
}

关于powershell - 有没有办法定义一个无参数的powershell参数集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47933172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com