我有这个CSV文件。看起来像这样:
ID,Name,Surname,Energy, Sugar 1,Kim,Jansen,4343,45 2,Tim,Brown,5332,42 3,Paul,Redford,2345,36
我的脚本中有一个Read-Host
语句,要求输入ID。有了它-假设它是2-现在,我想导入此CSV文件并读取ID = 2的行,并将名称,姓氏,能量和糖保存在变量中。
我尝试使用ForEach-Object
等,但它会打印所有ID列,并仅保存最后一行。
仅在if
条件为真的情况下如何获取行值?
答案 0 :(得分:1)
只需使用Where-Object
过滤器:
$id = Read-Host ...
$row = Import-Csv 'input.csv' | Where-Object { $_.Id -eq $id }
您可以将CSV的字段存储在各个变量中:
$name = $row.Name
$surname = $row.Surname
$energy = $row.Energy
$sugar = $row.Sugar
但是通常既不需要也不推荐。只需使用对象变量的属性(在此示例中为$row
)即可。