![]() |
Сравнение содержимого двух CSV файлов
Задача такая - есть два файла:
new.csv в котором содержится Цитата:
Цитата:
т.е. в фейле new нет Гейтс С.С. и Редькин Р.Р и Сидоров С.С значит эти два объекта с их значениями должны попасть в массив $del а в файле old нет Иванов И.И. и Сидоров Семен.С. значит эти два объекта с их значениями должны попасть в массив $new Проверятся должны не только параметр "Name" но также и параметр "Mail" (если у Петров П.П. поменялась бы почта на ,"PP.petrov@company.ru", то Петров П.П. со старой почтой попал бы в массив $del, а Петров с новой почтой попал бы в массив $new) Пытался использовать встроенный Cmdlet Compare-Object, но Compare-Object вообще как то непонятно проводит сравнение, возможно им вообще не получится это сделать. Подскажите как это реализовать! Вот мой пример. PHP код:
|
Код:
$cOldEmail = Get-Content New.csv | ConvertFrom-Csv -Delimiter "," |
Немогу понять в чем проблема, иногда он правильно все обрабатывает, а иногда при выполнении этого кода выдает ошибку.
Код: PHP код:
Цитата:
|
$new = @();$del = @() - $Old,$New - поменяйте OLD на DEL
|
Извините) опечатался и не заметил...
|
Есть ещё вопрос, как с помощью Compare-Object сравнить два массива с разными именами свойств объектов
из файла: OldADEmail.csv подгружается массив имеющий вот такие имена свойств "Department","Name","Company","Mail","Title" а из файла Email.csv "Department","LastName","CompanyName","Email1Address","JobTitle" т.е. содержимое файлов одинаковое, только Compare-Object не понимает на автомате это. Если указываешь параметр -Property можно указать только один раз. (невозможно поставить соответсвия) |
Вот что смог сделать сам, насколько это правильно?
Код:
$cNewEmail = @() |
Код:
$cNewEmail = Get-Content NewEmail.csv | Select -Skip 1 | ConvertFrom-Csv -Header "Department","Name","Company","Mail","Title" -Delimiter "," |
Время: 17:57. |
Время: 17:57.
© OSzone.net 2001-