PowerShell的枚舉值鑑於我目前的enum
:代表所有
Add-Type -TypeDefinition @"
[System.Flags]
public enum FlagsEnum {
None = 0,
SummaryInfo = 1,
ReportOptions = 2,
ParameterFields = 4
}
"@
有沒有一種方法來創建將所有位爲1的入口?這句法會導致錯誤:
Add-Type -TypeDefinition @"
[System.Flags]
public enum FlagsEnum {
None = 0,
SummaryInfo = 1,
ReportOptions = 2,
ParameterFields = 4,
All = (SummaryInfo -bor ReportOptions -bor ParameterFields)
}
"@
**編輯**
改變了聲明:
Add-Type -TypeDefinition @"
[System.Flags]
public enum FlagsEnum {
None = 0,
SummaryInfo = 1,
ReportOptions = 2,
ParameterFields = 4,
All = (SummaryInfo | ReportOptions | ParameterFields)
}
"@
代碼:
$flags = [FlagsEnum]::All
if ($flags -band [FlagsEnum]::SummaryInfo) { write-host "add SummaryInfo" }
if ($flags -band [FlagsEnum]::ReportOptions) { write-host "add ReportOptions" }
if ($flags -band [FlagsEnum]::ParameterFields) { write-host "add ParameterFields" }
結果:
Add-Type : Cannot add type. The type name 'FlagsEnum' already exists.
At C:\Documents and Settings\xxx\My Documents\WindowsPowerShell\Scripts\enums.ps1:3 char:9
+ Add-Type <<<< -TypeDefinition @"
+ CategoryInfo : InvalidOperation: (FlagsEnum:String) [Add-Type], Exception
+ FullyQualifiedErrorId : TYPE_ALREADY_EXISTS,Microsoft.PowerShell.Commands.AddTypeCommand
你什麼錯誤? – EBGreen 2013-05-02 16:43:37
'InvalidData:(:) [Add-Type],InvalidOperationException' – craig 2013-05-02 16:49:25