none
Envoi de chaque ligne d'un fichier csv vers un autre fichier RRS feed

  • Question

  • Bonjour,

    Je recherche une astuce afin d'effectuer une opération sur chaque ligne d'un fichier csv.

    Le principe, j'ai un fichier contenant environ 150 lignes et je souhaite pour chacune de ces lignes que mon script lise la ligne 1 et envoi son contenu contenu dans un fichier ligne1.txt idem pour la pour la ligne2 etc.

    Voici ce que j'ai déjà trouvé qui fonctionne très bien cependant comme mon fichier contient plus d'une centaine de lignes ce n'est pas très approprié, je dois répéter l'opération pour toutes les lignes...

    Get-Content .\test.csv | where { $_ -ne "$null" } | Select-Object -Index 1 | out-file test1.txt

    Une boucle foreach suivi d'un for me paraît appropriée pour cette opération, mais je n'ai pas l'astuce pour effectuer l'envoi du contenu de chaque ligne dans un fichier distinct avant de passer à la ligne suivante.

    Merci d'avance pour votre aide.

    Bien cordialement

    vendredi 29 janvier 2016 19:33

Réponses

  • Voici

    $CsvFile = get-content .\test.csv | where {$_ -ne "$null"}
    $Num = 1
    
    foreach ($Line in $CsvFile) {
      write-host "Ligne $("{0:000}" -f $Num): " -NoNewLine -foregroundcolor yellow 
      write-host $Line -foregroundcolor White
      out-file -filepath .\Folder\Test-$("{0:000}" -f $Num).txt -InputObject $Line -Encoding utf8
      $Num++
      }
    

    A.

    • Marqué comme réponse Vincent788 vendredi 29 janvier 2016 23:17
    vendredi 29 janvier 2016 22:53

Toutes les réponses

  • Voici

    $CsvFile = get-content .\test.csv | where {$_ -ne "$null"}
    $Num = 1
    
    foreach ($Line in $CsvFile) {
      write-host "Ligne $("{0:000}" -f $Num): " -NoNewLine -foregroundcolor yellow 
      write-host $Line -foregroundcolor White
      out-file -filepath .\Folder\Test-$("{0:000}" -f $Num).txt -InputObject $Line -Encoding utf8
      $Num++
      }
    

    A.

    • Marqué comme réponse Vincent788 vendredi 29 janvier 2016 23:17
    vendredi 29 janvier 2016 22:53
  • Merci beaucoup !!

    Cela fonctionne !!

    vendredi 29 janvier 2016 23:17