我按排序顺序有两个变量。
$a
包含
Gi1/1
Gi1/2
$b
包含
Gi1/1
Gi1/2
Gi1/3
我试着比较两个变量是否相等或不相同如下:
if($a -eq $b) {
write-host "equal"
} else {
write-host "not equal"
}
但它似乎没有用。输出应该是"不等于",但输出为"等于"。我该如何解决这个问题?
答案 0 :(得分:1)
你有两个数组(从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' }