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

puruo6ea  于 2023-01-20  发布在  Shell
关注(0)|答案(1)|浏览(182)

我有两个按顺序排列的变量。
$a包含

Gi1/1
Gi1/2

$b包含

Gi1/1
Gi1/2
Gi1/3

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

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

但好像不起作用。输出应该是“不相等”,但它输出为“相等”。我该如何解决这个问题?

rjee0c15

rjee0c151#

你有两个数组(从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'
}

相关问题