【发布时间】:2021-05-25 16:39:32
【问题描述】:
我试图验证一个名为“Collect”的参数只接受 3 个参数(基本、中等和完整),但是当我为“collect”参数分配一个“有效”值时,它得到一个“假”返回。
我就是这么做的:
[CmdLetBinding()]
param([string]$Collect)
)
if ($collect -ne ('basic' -or 'medium' -or 'full')) {
Write-Host "'collect' is mandatory with mandatory values. For reference, use -help argument" -ForegroundColor Red
exit
}
运行测试:
c:\script.ps1 -collect basic
'collect' is mandatory with mandatory values. For reference, use -help argument
PD: -我知道我可以使用 validateset,但这对我不起作用。 -我认为问题出在嵌套的 $collect -ne ('basic' -or 'medium' -or 'full'),但我该如何解决呢?
【问题讨论】:
-
[1] 你不能像这样链接逻辑运算符。 >>>
($collect -ne ('basic' -or 'medium' -or 'full'))grin] ///// [2] PoSh 有验证方法 - 看看下面... 使用参数验证简化您的 PowerShell 脚本 |脚本博客 — devblogs.microsoft.com/scripting/… -
为什么不直接使用
ValidateSet属性?[ValidateSet('basic','medium','full')] -
“我知道我可以使用 validateset,但这对我不起作用。”