[résolu] interprétation de virgule dans une variable
Bonjour,
j'ai fait un script en ps pour extraire des lignes de fichiers sources et les copier vers des fichiers destinations.
tout marche bien sauf mon filtre du Select-String -pattern.
je passe dans ma variable $FiltreCommuneInsee des valeurs chaine du style ^"090122",^"090111" .... le but est de sélectionner dans le fichier source les lignes qui commencent par 090122 ou les lignes qui commencent par 090111
j'ai testé sans la variable en tapant en dur les valeurs recherchées (^"090122",^"090111") cela fonctionne. quand j'utilise la variable, $FiltreCommuneInsee, elle prend la bonne valeur (^"090122",^"090111") mais cela ne fonctionne pas dans le Select-String.
Je pense que le script n’interprète pas les séparateurs (les virgules) contenu dans la variable, et au lieu de filtrer avec les valeurs une à une, il cherche l'ensemble de la chaine... et du coup il ne trouve aucune ligne dans le fichier source et me créé les nouveaux fichiers mais vide...
voilà, c'est bref mais j'espère que vous avez assez d'éléments pour me donner un coup de pousse pour que je puisse débloquer ce script.
par avance merci de votre disponibilité et de votre soutien,
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| function Get-ExportMajic{
# Préparation
## Nettoyage du repertoire de destination
del D:\TRAITEMENT\EXPORT\A_ENVOYER\MAJIC\* -Recurse
# Traitement
## On liste les fichiers MAJIC du répertoire Source, on récupère la première ligne et on créé les fichiers pour export en incluant la première ligne
$SourceMajic = 'D:\DONNEES\REFERENTIEL\MAJIC\TEST\'
$ListeFichierMajic = dir $SourceMajic
foreach ($FichierMajic in $ListeFichierMajic) {
$PremiereLigne = Get-Content -path $SourceMajic$FichierMajic | Select-Object -Index 0
Add-Content -path D:\TRAITEMENT\EXPORT\A_ENVOYER\MAJIC\$FichierMajic -value $PremiereLigne
}
## récupère les lignes de chaque commune dans les différents fichiers et les agrègent dans les nouveaux fichiers.
foreach ($FichierMajic in $ListeFichierMajic) {
$FiltreCommuneInsee =""
Import-Csv D:\TRAITEMENT\EXPORT\liste_commune.csv | foreach {
$CommuneInsee = $_.codeinsee
$FiltreCommuneInsee = $FiltreCommuneInsee+"^`"090$CommuneInsee`","
}
$FiltreCommuneInsee = $FiltreCommuneInsee.Substring(0, $FiltreCommuneInsee.Length-1);
write-host "Traitement du fichier $FichierMajic" -ForegroundColor Cyan
$NouveauContenu= Get-Content -path $SourceMajic$FichierMajic | Select-String -pattern $FiltreCommuneInsee
Add-Content -path D:\TRAITEMENT\EXPORT\A_ENVOYER\MAJIC\$FichierMajic -value $NouveauContenu
}
} |