J'ai un problème avec mon script, lorsque je le run il n'affiche pas toutes les cellules qui match lorsque je met un pipeline alors que sans celui-ci l'affichage est différent. Le but du script est comparer 4 colonnes et d'afficher seulement les cellules qui ne sont pas dans la colonne de référence donc je dois faire cette opération 4 fois mais en plus de cela je n'arrive à afficher les noms de colonnes lorsque je souhaite run la suite du script et des écarts ce font et je parviens pas à les retirer.

voici le code pour afficher les 4 colonnes sans pipeline mais avec des trous

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
$csv = Import-Csv .\test1.csv -Delimiter ';'

$ref = @($csv.Column1)
foreach ($row in $csv) {
  foreach ($col in 'Column2', 'Column3', 'Column4') {
    if ($ref -contains $row.$col) { $row.$col = '' }
  }
}


$csv | Select-Object Column1,Column2,Column3,Column4



le fichier


Column1 Column2 Column3 Column4
infra-1 infra-852 infra-2 infra-99
infra-98 infra-85 infra-44 infra-23
infra-5 infra-8 infra-1 infra-10
infra-2 infra-55 infra-8 infra-70
infra-62 infra-5 infra-852 infra-5


le résultat sans pipeline


Column1 Column2 Column3 Column4
------- ------- ------- -------
infra-1 infra-852 infra-99
infra-98 infra-85 infra-44 infra-23
infra-5 infra-8 infra-10
infra-2 infra-55 infra-8 infra-70
infra-62 infra-852

resultat:
En ajoutant : | where Column3 -ne '' par exemple

Column1 Column2 Column3 Column4
------- ------- ------- -------
infra-98 infra-85 infra-44 infra-23
infra-2 infra-55 infra-8 infra-70
infra-62 infra-852


Désolé mais je n'arrive pas afficher les tableaux correctement et je ne peux pas mettre de captures