我有一个CSV文件
Name,Age,Data
Test,22,Yes
Test2,23,No
Test3,43,Yes
如何使用PowerShell处理此文件,以便我可以复制此功能:
foreach(var HeaderName in CSV.HeaderName)
{
//Sample value Name
foreach(var data in HeaderColumn.Data)
{
//Do Something with data
//Sample values as we loop through will be
//Test,Test2,Test3
}
}
CSV.HeaderName
应该包含值Name
,Age
,Data
的位置
在我们处理标题时,HeaderColumn.Data
将包含Name
,Age
和Data
的列数据。
答案 0 :(得分:0)
PowerShell等效的伪代码将是这样的:
$csv = Import-Csv 'C:\path\to\your.csv'
$headers = $csv | Get-Member -MemberType NoteProperty | select -Expand Name
foreach ($header in $headers) {
foreach ($data in $csv.$header) {
# do stuff with $data
}
}
为了获得更好的答案,请退后一步,描述您尝试解决的实际问题,而不是您认为的解决方案。
演示:
PS C:\> $csvfile = 'C:\temp\test.csv'
PS C:\> Get-Content $csvfile
Name,Age,Data
Test,22,Yes
Test2,23,No
Test3,43,Yes
PS C:\> $csv = Import-Csv $csvfile
PS C:\> $csv | Format-Table -AutoSize
Name Age Data
---- --- ----
Test 22 Yes
Test2 23 No
Test3 43 Yes
PS C:\> $headers = $csv | Get-Member -MemberType NoteProperty | select -Expand Name
PS C:\> $headers
Age
Data
Name
PS C:\> foreach ($header in $headers) {
>> foreach ($data in $csv.$header) {
>> Write-Host $data
>> }
>> }
>>
22
23
43
Yes
No
Yes
Test
Test2
Test3