修改尝试结果 PowerShell 中 foreach 循环中 if 的结果

modify result of an if in a foreach loop in an attempted result PowerShell

我做了这样的 if 语句

$fin = $list.UF6E8_CANAL -match "ML"
if ($list.UF6E8_CANAL -match "ML"){1}
else {0}

它按原样工作,但只要我这样称呼它

write-output "<Index Nom=`"ALERTE_MAIL`" Valeur=`"$fin`"/>"

判断真假

知道我的正确结果应该是 1 还是 0 吗?

还有一件事,我的 if 位于循环的开头,他用 1 或 0 回答我

$boucle = foreach ($list in $liste)

{
$fin = $list.UF6E8_CANAL -match "ML"
if ($list.UF6E8_CANAL -match "ML"){1}
else {0}

write-output "       <Index Nom=`"ALERTE_MAIL`" Valeur=`"$fin`"/>"
}

所以当我在循环中介绍它时,它会用正确的答案(0 或 1)回答我
但是当我调用变量 $fin 时,它会变成 true 或 false(我希望它是 1 或 0)

而且我想隐藏第一次调用的结果

有什么想法吗?

$fin 是布尔类型,所以如果你把它放在字符串中,它会被隐式转换为字符串 'True' 或 'False'。你可以做 [int]$fin = $list.UF6E8_CANAL -match "ML",然后当在字符串中使用时,它将被转换为 0 或 1。它也可以在条件语句中工作,因为值 0 将被转换回布尔值 false,任何其他值将被转换回 true。