Как принудить целое число к типу перечисления в PowerShell?

читай внимательно прежде чем отвечать! Я хочу привести целое число к типу перечисления где целочисленное значение фактически не определено в перечислении. В VB.Net, можно напрямую привести любое целое число к целочисленному типу перечисления с помощью DirectCast. Есть ли способ сделать это изначально в PowerShell?

Мне нужно сделать это в PowerShell, чтобы вызвать метод на объекте взаимодействия Office (открыть.Приложение.SysCmd), который берет значение перечисления в качестве первого аргумента (AcSysCmdAction), но где фактическое значение, которое мне нужно передать (603 для недокументированного экспорта в действие accde), не включено в определение перечисления PIA. Встроенное преобразование типов PowerShell приводит к преобразованию числа или строки в соответствующий тип перечисления, но оно не будет принуждать значение int, которое не находится в перечислении. Вместо этого он создает недопустимое исключение преобразования. Прямо сейчас я прибегаю к динамически скомпилированному ScriptControl, который вызывает SysCmd через VBScript, но я хотел бы сохранить все в PowerShell, если это возможно.

2 ответов


вы можете позвонить Enum класса ToObject способ:

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