即使分配了新值,变量仍保留以前的值
Variable holds previous value even when new value assigned
我可能遗漏了一些简单的东西但是...
我的代码:
$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
以上代码returns:
DOG NOT FOUND. ADDING
Mouse FOUND
DOG
第一个如果没有找到DOG所以添加它;但是,第二个 if 找到了 Mouse 并且没有添加它。此时鼠标不在数组中。
我做错了什么?
我正在编写代码来创建 CSV 文件,作为某些处理的一部分。业务单位的值不会是恒定的,并且在处理过程中可能会发生变化。我只想在添加第一个详细信息行时写入 header 行。
-not
运算符的 precedence 高于 -contains
运算符,因此您实际上是在检查
(-not $BusinessUnits) -contains $Animal
而不是你真正想要检查的内容
-not ($BusinessUnits -contains $Animal)
使用括号(见上文)或 -notcontains
运算符来避免这个问题。
$BusinessUnits -notcontains $Animal
我可能遗漏了一些简单的东西但是...
我的代码:
$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
以上代码returns:
DOG NOT FOUND. ADDING Mouse FOUND DOG
第一个如果没有找到DOG所以添加它;但是,第二个 if 找到了 Mouse 并且没有添加它。此时鼠标不在数组中。
我做错了什么?
我正在编写代码来创建 CSV 文件,作为某些处理的一部分。业务单位的值不会是恒定的,并且在处理过程中可能会发生变化。我只想在添加第一个详细信息行时写入 header 行。
-not
运算符的 precedence 高于 -contains
运算符,因此您实际上是在检查
(-not $BusinessUnits) -contains $Animal
而不是你真正想要检查的内容
-not ($BusinessUnits -contains $Animal)
使用括号(见上文)或 -notcontains
运算符来避免这个问题。
$BusinessUnits -notcontains $Animal