我有两个排序顺序的变量。
$a
包含
Gi1/1
Gi1/2
$b
包含
Gi1/1
Gi1/2
Gi1/3
我试着比较两个变量是否相等,如下所示:
if($a -eq $b) {
write-host "equal"
} else {
write-host "not equal"
}
但它似乎并没有起作用。输出应该是“不相等”,但它的输出是“相等”。我该如何解决这个问题呢?
发布于 2018-03-12 22:32:36
您得到的是两个数组(从Select-String
返回),但您正在尝试进行字符串比较。当你这样做的时候,它试图这样做:
$a.ToString() == $b.ToString()
这就是
"System.Object[]" == "System.Object[]"
如果数组只包含字符串,一种解决方法是将它们相等地连接起来,然后进行比较:
$a = @('Gi1/1', 'Gi1/2')
$b = @('Gi1/1', 'Gi1/2', 'Gi1/3')
if (($a -join '') -eq ($b -join '')) {
'Equal'
}
else {
'Not equal'
}
https://stackoverflow.com/questions/49237225
复制相似问题