Bonjour à tous,
Le contexte : j'ai des fichiers csv dans lesquel je dois extraire des colonnes dont le nom de ces colonnes se trouvent dans un fichier de paramètres. Ce fichier de paramètres pouvant évoluer.
Dans un premier temps, je lis mon fichier de paramètres pour récupérer dans une chaine, la liste des colonnes. Puis, je traite mes fichiers csv un par un.
Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 get-childitem -path $app_dir\TEMP\*.csv | foreach ($_) { # traitement du fichier Import-Csv -delimiter ';' $_ | Select $ColIn | Export-Csv $o -delimiter ';' NTI # on supprime les guillemets (Get-Content $o) | Foreach-Object {$_ -replace '"', ''}|Out-File $o }
$ColIn contient la liste des colonnes : COMPTE,LIBELLE,VIDE3,VIDE4,VIDE5,SOLDE
Lorsque j'exécute le powershell, le fichier csv ne contient que la liste $ColIn.
Pourquoi la transcription de la valeur de $ColIn ne se fait pas ?
Par contre, si je donne le nom des colonnes au Select, pas de problème, j'obtiens le bon résultat.
Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 get-childitem -path $app_dir\TEMP\*.csv | foreach ($_) { # traitement du fichier $col1="COMPTE" $col2="LIBELLE" $col3="VIDE3" $col4="VIDE4" $col5="VIDE5" $col6="SOLDE" Import-Csv -delimiter ';' $_ | Select $col1,$col2,$col3,$col4,$col5,$col6 | Export-Csv $o -delimiter ';' NTI # on supprime les guillemets (Get-Content $o) | Foreach-Object {$_ -replace '"', ''}|Out-File $o
Si vous avez une idée d'où je fais une erreur ou si vous avez une réponse, je suis preneur.
Merci.
Partager