Powershell脚本Param块验证需要在另一个脚本中定义的类型

时间:2015-08-11 07:35:30

标签: powershell params add-type

one-script.ps1看起来像这样:

. $PSScriptRoot\another-script.ps1 

Param (
    [Parameter(Mandatory = $True)]
    [MyEnum]$enum
)


write-host "hi"

MyEnumanother-script.ps1中定义:

Add-Type -TypeDefinition @"
    public enum MyEnum {
        a, b, c, d
  }
"@

正在运行one-script.ps1 -enum badValue按预期打印验证异常,但不会停止并打印" hi"同样。我假设的原因是Param块不能在import语句之前。

但是,如果我将导入语句移到Param块下面,脚本将失败,因为MyEnum类型未定义。

那么如何在执行验证检查失败停止脚本的同时使用MyEnum类呢?

一种解决方案是在用户配置文件中添加MyEnum,但它不是解决此问题的一般解决方案。任何建议都表示赞赏。

0 个答案:

没有答案