PowerShell中的Compare-Object无法仅显示差异

时间:2018-02-20 12:25:03

标签: powershell object compare powershell-v5.0

尝试以下命令,但也在两个变量中提取类似的行条目

但我的要求只是显示两个变量的行差异

值1的内容是:

2273.32689.312
123.33.2312.1
5693.2.3.2.1

value2的内容是:

67556327.2.211.33
123.33.2312.1
55673.222.33.4

输出应为:

2273.32689.312
5693.2.3.2.1
67556327.2.211.33
55673.222.33.4

这些是我尝试过的命令:

Compare-Object $value1 $value2 | select -ExpandProperty inputobject

Compare-Object $value1 $value2 -Property "$property" | Format-Table -AutoSize

Compare-Object -ReferenceObject $value2 -DifferenceObject $value1 | select -expandproperty InputObject​

2 个答案:

答案 0 :(得分:0)

如果输入对象包含多行的单个字符串,则应按新行拆分它们以创建字符串数组:(如果它们用空格分隔,请改用-split ' '

$value1 = $value1 -split '\r\n'
$value2 = $value2 -split '\r\n'
Compare-Object $value1 $value2

答案 1 :(得分:0)

以下适用于我 -

$value1 = @('2273.32689.312', '123.33.2312.1', '5693.2.3.2.1')
$value2 = @('67556327.2.211.33', '123.33.2312.1', '55673.222.33.4')
Compare-Object -ReferenceObject $value2 -DifferenceObject $value1 | select -expandproperty InputObject

我得到了如下所需的输出 -

2273.32689.312
5693.2.3.2.1
67556327.2.211.33
55673.222.33.4

您粘贴的代码在InputObject之后有一个额外的字符。你可能想在行中检查一次 -

Compare-Object -ReferenceObject $value2 -DifferenceObject $value1 | select -expandproperty InputObject​