我如何在powershell中使用param函数中的变量



我不确定这是可能的,但是我想尝试一下。

这是我要做的基础知识:

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文章介绍了如何生成自定义错误消息

在阅读评论并根据评论完成研究后,我相信没有简单的方法可以做我想做的事情。

最新更新