我不确定这是可能的,但是我想尝试一下。
这是我要做的基础知识:
function somefunction () {
$ListOfItems = (get-childitem c:).name
param (
[validateset($ListOfItems)][string]$Moo
)
}
我不知道是否可以在验证网中使用一个变量。看起来并不是这样。如果可以的话,我该怎么做?
这是可行的。您正在追随ValidateScript
Function somefunction () {
param (
[ValidateScript({$_ -in (Get-Childitem C:).Name})]
[string]$Moo
)
}
编辑ValidateScript
的默认错误不是用户友好的:
PS C:> somefunction -Moo thing
某些功能:无法验证参数'Moo'的参数。" $ _ -in(get-childitem c :)。名称为"用值"的参数验证脚本没有返回true的结果。确定为什么 验证脚本失败,然后再次尝试命令。
此Stackoverflow文章介绍了如何生成自定义错误消息
在阅读评论并根据评论完成研究后,我相信没有简单的方法可以做我想做的事情。