Powershell Compare-Object выводит в файл - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть 2 простых текстовых файла, которые мне нужно сравнить и вывести элементы, находящиеся в ОБА файлах

Archive.TXT

10000
10001
10002
10003
10005
10010
10011

Active-Job-List.TXT

10000
10001
10002
10003
10004
10005
10006
10007
10008
10009
10010
10011
10012

Это даст мне вывод

$File1 = Get-Content C:\Archive-List.txt
$File2 = Get-Content C:\Active-Job-List.txt



   Compare-Object -ReferenceObject $File1 -DifferenceObject $File2 -IncludeEqual -ExcludeDifferent | Select @{Expression={$_.InputObject}} | Set-Content C:\Diff.txt

этого в Diff.txt

@{$_.InputObject=10000}
@{$_.InputObject=10001}
@{$_.InputObject=10002}
@{$_.InputObject=10003}
@{$_.InputObject=10005}
@{$_.InputObject=10010}
@{$_.InputObject=10011}

Но то, что я действительно ищу, это вывод этого

10000
10001
10002
10003
10005
10010
10011

Как я могу отфильтровать результаты к тому, что я хочу?Должен ли я Get-Content из Diff.txt и "обрезать" вещи, которые мне не нужны, или есть более простой способ?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Вам необходимо развернуть свойство InputObject.

Compare-Object -ReferenceObject $File1 -DifferenceObject $File2 -IncludeEqual -ExcludeDifferent | 
    Select-Object -ExpandProperty InputObject | 
    Set-Content C:\Diff.txt
0 голосов
/ 27 ноября 2018

Вы можете добавить -PassThru к вашей команде следующим образом:

Compare-Object -ReferenceObject $File1 -DifferenceObject $File2 -IncludeEqual -ExcludeDifferent -PassThru | Set-Content C:\Diff.txt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...