1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| # Définition des en-têtes
$Header = 'A', 'B', 'C', 'D', 'E'
# Import des fichiers
$F1 = Import-Csv -Path "Fichier10.txt" -Encoding Default -Header $Header
$F2 = Import-Csv -Path "fichier11.txt" -Encoding Default -Header $Header
# Variable qui servira à stocker le résultat
$result = @()
# Récupère les différences d'ID (ajout, suppression)
# Et stock dans $F1 et $F2 le statut SideIndicator pour les objects découverts, via le paramètre PassThru
$result = (Compare-Object -ReferenceObject $F1 -DifferenceObject $F2 -Property A -PassThru) | Select-Object A, B, C, D, E, @{Label="Code d'action";Expression={if($_.SideIndicator -eq "=>"){0}else{2}}}
# Récupère les modifications pour les doublons d'ID en comparant toutes les propriétés (A, B, C, D, E)
$result += (Compare-Object -ReferenceObject @($F1 | Where-Object {$_.SideIndicator -eq $null}) -DifferenceObject @($F2 | Where-Object {$_.SideIndicator -eq $null}) -Property A, B, C, D, E -ErrorAction SilentlyContinue) | Where-Object {$_.SideIndicator -eq "=>"} | Select-Object A, B, C, D, E, @{Label="Code d'action";Expression={1}}
# Export du résultat trié
$result | Sort-Object -Property "Code d'action" -Descending | Export-Csv -Path "comparaison.csv" -NoTypeInformation -Encoding Default |
Partager