如何在PowerShell中将整数强制转换为枚举类型?

7
在回答之前,请仔细阅读!我想将整数转换为枚举类型,其中整数值实际上未在枚举中定义。在VB.Net中,可以使用DirectCast直接将任何整数转换为基于整数的枚举类型。是否有一种方法可以在PowerShell中本地实现这一点?
我需要在PowerShell中执行此操作,以便调用Office Interop对象(Access.Application.SysCmd)上的方法,该方法将枚举值作为其第一个参数(AcSysCmdAction),但我需要传递的实际值(603,用于未记录的导出到accde操作)未包含在PIA枚举定义中。 PowerShell的内置类型转换会将数字或字符串转换为适用的枚举类型,但它不会强制将不在枚举中的int值转换。相反,它会抛出无效的转换异常。现在,我正在使用通过VBScript调用SysCmd的动态编译的ScriptControl,但如果可能的话,我希望保持所有内容都在PowerShell中。

2
42!哦,等等,让我真正地读一下这个... - Jiminion
2个回答

8
您可以调用枚举类中的ToObject方法:

Enum类的ToObject方法:

$day = [Enum]::ToObject([DayOfWeek], 90) 

4

嗯,我刚刚想出了一种方法。在PowerShell中,枚举对象似乎有一个名为"value__"的属性,可以直接设置为任何值!

#Create a variable with the desired enum type
$ops = [System.Text.RegularExpressions.RegexOptions]0
#Directly set the value__ property
$ops.value__ = 3450432

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接