Powershell 即使指定了新值,变量也会保留以前的值
我可能错过了一些简单的东西,但是 我的代码:Powershell 即使指定了新值,变量也会保留以前的值,powershell,operator-precedence,Powershell,Operator Precedence,我可能错过了一些简单的东西,但是 我的代码: $BusinessUnits = @() $Animal = 'DOG' if (-not $BusinessUnits -contains $Animal) { $Animal + " NOT FOUND. ADDING" $BusinessUnits += $Animal } else { $Animal + " FOUND" } $Animal = 'Mouse' if (-not $BusinessUnits -C
$BusinessUnits = @()
$Animal = 'DOG'
if (-not $BusinessUnits -contains $Animal) {
$Animal + " NOT FOUND. ADDING"
$BusinessUnits += $Animal
} else {
$Animal + " FOUND"
}
$Animal = 'Mouse'
if (-not $BusinessUnits -Contains $Animal) {
$Animal + " NOT FOUND. ADDING"
$BusinessUnits += $Animal
} else {
$Animal + " FOUND"
}
$BusinessUnits
以上代码返回:
DOG NOT FOUND. ADDING
Mouse FOUND
DOG
第一个如果没有找到狗,那么就添加它;但是,第二个if会找到鼠标,但不会添加鼠标。此时鼠标不在数组中
我做错了什么
我正在编写代码来创建CSV文件,作为某些处理的一部分。业务单元的值不是常数,在处理过程中可能会发生变化。我只想在添加第一个详细信息行时写入标题行。非运算符的值高于包含运算符的值,因此您可以有效地进行检查
(-not $BusinessUnits) -contains $Animal
而不是你真正想要检查的
-not ($BusinessUnits -contains $Animal)
请使用上面的括号或-notcontains运算符来避免此问题
$BusinessUnits -notcontains $Animal
-not运算符的值高于-contains运算符的值,因此可以有效地进行检查
(-not $BusinessUnits) -contains $Animal
而不是你真正想要检查的
-not ($BusinessUnits -contains $Animal)
请使用上面的括号或-notcontains运算符来避免此问题
$BusinessUnits -notcontains $Animal