【发布时间】:2012-08-22 23:57:52
【问题描述】:
使用 c# 编写具有多个参数集的 PowerShell cmdlet。
是否有可用于限定/选择所需集合的参数类型?
例如,假设我有这些 Create-IceCream cmdlet 的参数集:
Create-IceCream [-Choco] .. <insert Choco specific parameters here>
Create-IceCream [-Cherry] .. <insert Cherry specific parameters here>
Create-IceCream .. <insert plain specific parameters here>
参数“Choco”和“Cherry”的类型是什么?显然 SwitchParameter 类型不能使用,因为它仍然可以用 $false 值指定。
枚举类型不会那么直观,需要我创建许多动态参数。
有什么想法吗?我可能应该提到,对于这个问题,我们假设我仅限于创建一个 cmdlet。
谢谢,
【问题讨论】:
-
再来一次为什么switch不能用?
-
因为我认为像“Create-IceCream -Choco:$false”这样的东西没有意义。它将调用“Choco”集,没有“Choco”。你明白了吗?我想我所追求的是一个真正的开关参数,一个不存在或存在的参数。就像在常规控制台类型命令中一样。与微软的 SwitchParameter 不同,它可以不存在,存在:$true 或存在:$false。
-
在这种情况下您不必创建开关参数。您只需要两个不同的参数集,无论您喜欢什么类型。
标签: c# powershell