Spe*_*ian 1 powershell bitmask
我正在使用代表错误代码的位掩码.例如,值3(二进制11)表示遇到了错误1和2(二进制1和10).我正在寻找一个在powershell中自动将其转换为数组的函数.
我环顾互联网,找不到任何特别的情况.我编写了一个执行此操作的函数,但如果用户不熟悉位掩码,那么它的可读性不高.
编辑具体来说,我正在寻找一个带有"原始"错误位并使用它来返回错误数组的函数.例如:
GetErrorList 3779
返回一个包含:
1, 2, 64, 128, 512, 1024, 2048
设置一个带有每个位翻译的哈希表,并使用二元AND运算符(-band)来找出引发的错误:
function Get-ErrorDescription {
param([int]$ErrorBits)
$ErrorTable = @{
0x01 = "Error1"
0x02 = "Error2"
0x04 = "Error3"
0x08 = "Error4"
0x10 = "Error5"
0x20 = "Error6"
}
foreach($ErrorCode in $ErrorTable.Keys | Sort-Object){
if($ErrorBits -band $ErrorCode){
$ErrorTable[$ErrorCode]
}
}
}
Run Code Online (Sandbox Code Playgroud)
返回找到的字符串数组错误,或 $null
PS C:\> Get-ErrorDescription -ErrorBits 3
Error1
Error2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1410 次 |
| 最近记录: |