Working with Arrays, Matching and Comparing

by maverick918 at 2013-04-06 12:58:19

So I’m having this issue I’ve been researching and I was wondering if anyone has run into this before.

I have two CSV files that I’m importing into my powershell script

Lets call them


Both contain one column that match. Depending on this matching column I would like to have whatever is in that column added to a master column. Let me show you.



If $A.Number and $B.Number Match I would like to have another object that looks like this


But there are multiple columns like this in each CSV file and $A.Number and $B.Number are sometimes in a random order, however they will always have the same amount of numbers. I’ve been doing research on this but I haven’t found anything that is exactly what I’m looking to do, maybe a nested foreach with an if statement.

Let me know if you guys have ever had to do anything like this.

by coderaven at 2013-04-06 13:20:09
Let me see if I can work you up an example.
$A = Import-Csv -Path …
$B = Import-Csv -Path …

foreach ($AObj in $A)
foreach ($BObj in $B)
if ($AObj.Number -eq $BObj.Number)
New-PSObject -TypeName PSObject -Property @{ `
"Number" = $AObj.Number;
"Letter" = $AObj.Letter;
"Label" = $AObj.Label;
"File" = $BObj.File;
"Size" = $BObj.Size;
"Lun" = $BObj.Lun;
}#end PSObject Hashtable
}#end if
}#end for B
}#end for A

The output should give you the result you are wanting. You can take that output and export-csv.
by maverick918 at 2013-04-06 13:45:01

Thank you so much. You.Are.Awesome.

This worked perfectly.
by Lembasts at 2013-04-07 16:42:27
If you sorted the files by number you could use my little join-csv utility… … 60#content