Jos*_*nig 7 powershell enums casting com-interop
在回答之前仔细阅读!我想将一个整数转换为枚举类型,其中整数值实际上没有在枚举中定义.在VB.Net中,可以使用DirectCast直接将任何整数转换为基于整数的枚举类型.有没有办法在PowerShell中本地完成此操作?
我需要在PowerShell中执行此操作,以便在Office Interop对象(Access.Application.SysCmd)上调用方法,该对象将枚举值作为其第一个参数(AcSysCmdAction),但是我需要传递的实际值(603表示PIA枚举定义中不包括未记录的出口到accde行动.PowerShell的内置类型转换使它将数字或字符串转换为适用的枚举类型,但它不会强制枚举不在枚举中的int值.相反,它会抛出无效的转换异常.现在我正在使用一个动态编译的ScriptControl,它通过VBScript调用SysCmd,但我想尽可能保留PowerShell中的所有内容.
你可以调用Enum
类的ToObject
方法:
$day = [Enum]::ToObject([DayOfWeek], 90)
Run Code Online (Sandbox Code Playgroud)