PowerShell CSV 捕获三列的 1 值



我有一个CSV,数据是这样的:..

#date,a,b,c#
10,1,0,0
11,0,0,1
12,0,1,0
13,0,1,0
14,0,0,1
15,1,0,0
16,0,1,0
17,1,0,0
18,1,0,0
19,0,0,1

我想捕获带有"1"标题 A、B、C 的列值,每行只出现一次"1"...... 我希望我的输出是类似于

A,C,B,B,C,A,B,A,A,C

任何帮助,不胜感激。 谢谢

  • 只需遍历数据表中的每一行 ($Row) ($data)

  • 收集所有符合您要求的列('a', 'b', 'c') 要求(例如-eq 1)

  • 如果只有一列满足要求,则返回结果

ForEach ($Row in $Data) {
$Header = ('a', 'b', 'c').Where{ $Row.$_ -eq 1}
If ($Header.Count -eq 1) { $Header }
}

对于 CSV 文件中的每条记录,您需要遍历每个列/标题名称,直到找到该记录的列值1

foreach($record in Import-Csv .pathtofile.csv){
'A','B','C' |Where-Object { $record."$_" -eq 1 } |Select-Object -First 1
}

最新更新