how do I loop through a line from a csv file in powershell how do I loop through a line from a csv file in powershell powershell powershell

how do I loop through a line from a csv file in powershell


Import-Csv $path | Foreach-Object {     foreach ($property in $_.PSObject.Properties)    {        doSomething $property.Name, $property.Value    } }


A slightly other way of iterating through each column of each line of a CSV-file would be

$path = "d:\scratch\export.csv"$csv = Import-Csv -path $pathforeach($line in $csv){     $properties = $line | Get-Member -MemberType Properties    for($i=0; $i -lt $properties.Count;$i++)    {        $column = $properties[$i]        $columnvalue = $line | Select -ExpandProperty $column.Name        # doSomething $column.Name $columnvalue         # doSomething $i $columnvalue     }} 

so you have the choice: you can use either $column.Name to get the name of the column, or $i to get the number of the column


$header3 = @("Field_1","Field_2","Field_3","Field_4","Field_5")     Import-Csv $fileName -Header $header3 -Delimiter "`t" | select -skip 3 | Foreach-Object {    $record = $indexName     foreach ($property in $_.PSObject.Properties){        #doSomething $property.Name, $property.Value            if($property.Name -like '*TextWrittenAsNumber*'){                $record = $record + "," + '"' + $property.Value + '"'             }            else{                $record = $record + "," + $property.Value             }                               }                       $array.add($record) | out-null          #write-host $record                         }