我正在尝试将PowerShell中的布尔值转换为以下内容:
这是我的相关代码
$SecMasSQLRes | ForEach-Object {
if ($SecMasSQLRes.CusipPercent -lt 25) {
Write-Host CusipStatus = GREEN
} else {
Write-Host CusipStatus = RED
}
if ($SecMasSQLRes.ISINPercent -lt 10) {
Write-Host IsinStatus = GREEN
} else {
Write-Host IsinStatus = RED
}
if ($SecMasSQLRes.SymbolPercent -lt 10) {
Write-Host SymbolStatus = GREEN
} else {
Write-Host SymbolStatus = RED
}
}
$CusipResults = $SecMasSQLRes.CusipPercent -lt 25
$IsinResults = $SecMasSQLRes.ISINPercent -lt 10
$SymbolResults = $SecMasSQLRes.SymbolPercent -lt 10
$CusipResults
$IsinResults
$SymbolResults
答案 0 :(得分:1)
有几种方法可以解决这个问题:
根据@PetSerAl的建议使用if
/ else
声明:
if (condition) {'GREEN'} else {'RED'}
使用switch
声明:
switch (condition) { $true {'GREEN'} default {'RED'} }
根据@TessellatingHeckler的建议使用哈希表:
$light = @{$true = 'GREEN'; $false = 'RED'}
$light[(condition)]
使用布尔值(隐式转换为整数)作为数组中的索引,如@Mathias R. Jessen所示:
@('RED', 'GREEN')[(condition)]
就个人而言,我认为散列表方法是最干净的方法,所以我更喜欢那个:
$light = @{
$true = 'GREEN'
$false = 'RED'
}
$SecMasSQLRes | ForEach-Object {
Write-Host CusipStatus = $light[($_.CusipPercent -lt 25)]
Write-Host IsinStatus = $light[($_.ISINPercent -lt 10)]
Write-Host SymbolStatus = $light[($_.SymbolPercent -lt 10)]
}