Скрипт Powershell для сравнения CSV - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть несколько листов csv excel, которые выглядят так:

Примечание редактора: если у вас есть CSV, то опубликуйте текстовое представление этого CSV!

> Get-Content .\Sheet1.csv
Name,Age
Xavier,20
Liam,19
Lisy,21

> Get-Content .\Sheet2.csv
Name,Age
Liam,19
Lisy,21
Frank,25

Может ли кто-нибудь помочь мне заставить его работать и вывести csv.

Я пытаюсь сравнить значения столбца 'Name' с csv 1 до csv2:

  • , еслиесть совпадение, которое я хочу сохранить в массиве с именем array 1, наконец экспортировать его в csv.Например, -Liam и Lisy
  • , если они не совпадают, я хочу сохранить значения в array 2, наконец, экспортируйте их в CSV.например - Ксавье

Мой код:

$source = Import-Csv C:\output\Source.csv 
$target = Import-Csv C:\output\Target.csv
Creating array to store vales
$match = New-Object System.Collections.ArrayList
$donotmatch = New-Object System.Collections.ArrayList
Comparing column values  
foreach ($i in $source) {
    foreach ($s in $i.name) {
        foreach ($t in $target) {
            if ($n -eq $t.name) {
                $match.Add($n)
            }
            else
            {
                $donotmatch.Add($n)
            }
        }
    }
}
$match.ToArray()
$donotmatch.ToArray()

1 Ответ

0 голосов
/ 21 февраля 2019

Этот скрипт:

$Sheet1 = Import-Csv .\Sheet1.csv
$Sheet2 = Import-Csv .\Sheet2.csv

Compare-Object $Sheet1 $Sheet2 -Property Name -PassThru |
    Select-Object * -ExcludeProperty SideIndicator | 
        Export-Csv Different.csv -NoTypeInformation

Compare-Object $Sheet1 $Sheet2  -Property Name -PassThru -IncludeEqual -ExcludeDifferent |
    Select-Object * -ExcludeProperty SideIndicator | 
        Export-Csv Equal.csv -NoTypeInformation

выдаст эти два файла:

> Get-Content .\Equal.csv
"Name","Age"
"Liam","19"
"Lisy","21"

> Get-Content .\Different.csv
"Name","Age"
"Frank","25"
"Xavier","20"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...