从CSV文件读取并将每个值连续保存在变量中

时间:2018-10-09 13:20:06

标签: csv powershell-v4.0

我有这个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条件为真的情况下如何获取行值?

1 个答案:

答案 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)即可。