one-script.ps1
看起来像这样:
. $PSScriptRoot\another-script.ps1
Param (
[Parameter(Mandatory = $True)]
[MyEnum]$enum
)
write-host "hi"
MyEnum
在another-script.ps1
中定义:
Add-Type -TypeDefinition @"
public enum MyEnum {
a, b, c, d
}
"@
正在运行one-script.ps1 -enum badValue
按预期打印验证异常,但不会停止并打印" hi"同样。我假设的原因是Param块不能在import语句之前。
但是,如果我将导入语句移到Param块下面,脚本将失败,因为MyEnum类型未定义。
那么如何在执行验证检查失败停止脚本的同时使用MyEnum类呢?
一种解决方案是在用户配置文件中添加MyEnum,但它不是解决此问题的一般解决方案。任何建议都表示赞赏。