comment puis-je faire une boucle par une ligne à partir d'un fichier csv en powershell
Je veux traiter un fichier csv dans powershell, mais je ne sais pas ce que les en-têtes de colonne dans le fichier CSV sera quand elle est traitée.
Par exemple:
$path = "d:\scratch\export.csv"
$csv = Import-csv -path $path
foreach($line in $csv)
{
foreach ($head in $line | get-member | where-object {$_.MemberType -eq "NoteProperty"} | select Definition)
{
#pseudocode...
doSomething($head.columnName, $head.value)
}
}
Comment faire une boucle sur la ligne dans le fichier csv, obtenir le nom de la colonne et la valeur? Ou est-il une autre façon pour moi de faire cela (comme n'utilisant pas d'Import-csv)?
OriginalL'auteur simon | 2012-08-09
Vous devez vous connecter pour publier un commentaire.
Ce sauté le premier pour moi. Je ne suis pas en utilisant les en-têtes dans mon csv et je n'ai qu'une ligne avec pas de virgules ex: thing1<NEWLINE>thing2<NEWLINE> ect.. En d'autres termes une simple liste
Import-CSV $path en-Tête de l'Un est le changement dont vous avez besoin. Cela dit powershell pour ajouter l'en-tête de "A" à la colonne et traiter chaque ligne comme une valeur, plutôt que de penser que la ligne 1 est une ligne d'en-tête.
OriginalL'auteur Shay Levy
Un peu d'autre moyen de l'itération sur chaque colonne de chaque ligne d'un fichier CSV serait
alors vous avez le choix: vous pouvez utiliser soit
$column.Name
pour obtenir le nom de la colonne, ou$i
pour obtenir le numéro de la colonneOriginalL'auteur user4531
OriginalL'auteur user3100105