title: Compare 2 CSV files and write all differences
body: <p>I have 3 CSV files that contain user information. CSV1 is a "master" list of all inactive users. CSV2 is a current list of users that need to be deactivated and CSV3 is a list of users that need to be activated.</p>
  
  <p>What I want is to have a PowerShell script that can be called from another script (the one that creates CSV2/3) to have it compare CSV1/2 and write all unique records back to CSV1. Then I want it to compare CSV1/3 and remove all records in CSV1 that exist in CSV3. CSV2/3 can change daily and it is possible to have no data in them, other than the header.</p>
  
  <p>There are several unique fields, but I would want to compare on 'EmployeeID'.
  All 3 CSV files have headers (same headers in all of them, so the data is consistent).</p>
  
  <p>What I have ended up with so far will add the records from CSV2 to CSV1, but it adds both headers.</p>
  
  <pre><code>$ICM= Import-Csv inactiveicmaster.csv -Header 'StudentDistrictID', 'StudentSiteCode', 'StudentLastName', 'StudentFirstName', 'StudentGradeLevel', 'GraduationYr', 'Masterck', 'Homeroom', 'MiddleName', 'Birthday', 'Gender', 'Email'
  $IC = Import-Csv csv\inactiveic.csv -Header 'StudentDistrictID', 'StudentSiteCode', 'StudentLastName', 'StudentFirstName', 'StudentGradeLevel', 'GraduationYr', 'Masterck', 'Homeroom', 'MiddleName', 'Birthday', 'Gender', 'Email'
  $DIS = Import-Csv csv\disinad.csv -Header 'StudentDistrictID', 'StudentSiteCode', 'StudentLastName', 'StudentFirstName', 'StudentGradeLevel', 'GraduationYr', 'Masterck', 'Homeroom', 'MiddleName', 'Birthday', 'Gender', 'Email'
  foreach ($f in $ic) {
    $found = $false
    foreach ($g in $icm) {
      if ($g.StudentDistrictID -eq $f.StudentDistrictID) {
        $found = $true
      }
    }
    if ($found -eq $false) {
      $icm += $f
      if ($f.masterck -eq "") {
        $f.masterck = "IM"
      }
    }
  }
  &lt;#
  foreach ($h in $dis) {
    $found = $false
    foreach ($g in $icm) {
      if ($g.studentdistrictid -eq $h.studentdistrictid) {
        $found = $true
      }
      if ($found -ne $false) {
        #don't know what to do here to remove the duplicate
      }
    }
  }
  #&gt;
  $icm | select * | Export-Csv master.csv -NoTypeInformation
  </code></pre>