2

one-script.ps1 looks like this:

. $PSScriptRoot\another-script.ps1 

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


write-host "hi"

MyEnum is defined in another-script.ps1:

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

Running one-script.ps1 -enum badValue prints the validation exception as expected, but doesn't stop and prints "hi" as well. The reason I assume is that the Param block can't be preceded by the import statement.

However if I move the import statement below the Param block, the script fails because MyEnum type is undefined.

So how can I use MyEnum class while also having the validation check failure stop script from executing?

One solution is to add MyEnum in user profile, but it's not a good general solution to this problem. Any suggestions are appreciated.

Mikey
  • 91
  • 1
  • 7

0 Answers0