比较PowerShell中的两个字符串变量

时间:2018-03-12 14:05:08

标签: powershell

我按排序顺序有两个变量。

$a包含

Gi1/1
Gi1/2

$b包含

Gi1/1
Gi1/2
Gi1/3

我试着比较两个变量是否相等或不相同如下:

if($a -eq $b) {
    write-host "equal"
} else {
    write-host "not equal"
}

但它似乎没有用。输出应该是"不等于",但输出为"等于"。我该如何解决这个问题?

1 个答案:

答案 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' }