반응형
powershell에서 csv 파일의 줄을 어떻게 반복합니까?
powershell에서 csv 파일을 처리하고 싶은데, 처리할 때 csv 파일의 열 제목이 무엇인지 모르겠습니다.
예:
$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)
}
}
csv 파일에서 줄을 루프하여 열 이름과 값을 가져오려면 어떻게 해야 합니까?아니면 Import-csv를 사용하지 않는 것과 같은 다른 방법이 있습니까?
Import-Csv $path | Foreach-Object {
foreach ($property in $_.PSObject.Properties)
{
doSomething $property.Name, $property.Value
}
}
CSV 파일의 각 줄의 각 열을 반복하는 약간 다른 방법은 다음과 같습니다.
$path = "d:\scratch\export.csv"
$csv = Import-Csv -path $path
foreach($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
}
}
그래서 당신은 선택할 수 있습니다: 당신은 둘 중 하나를 사용할 수 있습니다.$column.Name
열의 이름을 가져오거나$i
열의 번호를 얻다
$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
}
언급URL : https://stackoverflow.com/questions/11885246/how-do-i-loop-through-a-line-from-a-csv-file-in-powershell
반응형
'programing' 카테고리의 다른 글
Python에서 파일 확장자 변경 (0) | 2023.08.05 |
---|---|
SQL Server 데이터베이스를 축소하려면 어떻게 해야 합니까? (0) | 2023.08.05 |
이름을 사용하여 컨트롤을 찾을 수 없습니다. 각 반응 형식의 formControlName (0) | 2023.08.05 |
MariaDB help_topic.파일 (0) | 2023.08.05 |
sqlAlchemy를 사용한 저장 프로시저 (0) | 2023.08.05 |