У меня есть две таблицы с данными, которые я хочу сравнить, чтобы выделить совпадающие и несоответствующие данные с несколькими «хитами» - некоторые столбцы, которые я хочу игнорировать для сравнения (оценка, имя теста), другие я хочу включить (Имя файлаи хэш), и я хочу передать обе стороны (поэтому, даже если он не совпадает, я хочу сделать «полный внешний» запрос).Вот мои примеры данных:
CSV1 (Источник):
FileName, ServerName, TestName, Hash, Score
C:\temp, ServerA, TestA, 12345, 100
C:\temp1, ServerA, TestA, 12345, 100
C:\temp2, ServerA, TestA, 12345, 5
C:\temp3, ServerA, TestA, 8888, 100
C:\temp5, serverA, TestB, 9999, 100
CSV2 (ComparisonTarget):
FileName, ServerName, TestName, Hash, Score
C:\temp, ServerB, TestA, 12345, 100
C:\temp1, ServerB, TestA, 5555, 100
C:\temp3, ServerB, TestA, 8888, 100
C:\temp5, ServerB, TestB, 9999, 100
C:\temp7, ServerB, TestB, 5678, 22
Я хочу посмотреть, совпадают ли имена файлов и хэши - напримерC: \ temp и C: \ temp5 будут соответствовать и возвращать все столбцы с боковым индикатором - например,
Вывод CSV
SourceFileName, SourceServer,DestinationServer, ..., Match, Score
C:\temp, ServerA, ServerB, True, 100
C:\temp3, ServerA, ServerB, True, 8888
C:\temp1, ServerA, ServerB, False, 100
C:\temp2, ServerA, N/A, False, 5
C:\temp7, N/A, ServerB, False, 22
Я использовал ForEach ($ record в $ CSV1)и проверил на совпадение имен файлов, затем хэши, но он работает медленно с большими объемами данных (я подозреваю, потому что мой полный внешний запрос требует, чтобы я расширил свою хеш-таблицу новыми членами для всех столбцов).
Я рассчитал Compare-objectбыло бы неплохо, но это не позволяет мне включать обе стороны в промежуточное заявление, если я что-то упустил?