根据已存在的列中的值,在CSV文件中插入带有值的新列

时间:2015-11-18 22:59:57

标签: csv powershell-v3.0

我正在尝试从CSV文件中的对象读取值(使用PowerShell 3.0)。基于该值,我将创建一个新列并插入一个值(在同一行中)。

例如,我有CSV文件:

Attribute1,Attribute2
Valuea1,Valueb1
Valueb1,Valuea1
Valuea1,Valueb1
Valueb2,Valuea2
Valuea2,Valueb2

对于Attribute2中的每个“Valueb1”,将一个值“Found”插入新列Data。所以最后,它应该是这样的(如果没有“Found”,请注意添加的,):

Attribute1,Attribute2,Data
Valuea1,Valueb1,Found
Valueb1,Valuea1,
Valuea1,Valueb1,Found
Valueb2,Valuea2,
Valuea2,Valueb2,

我不熟悉嵌套循环如何使用PowerShell处理CSV文件中的对象。

1 个答案:

答案 0 :(得分:3)

添加calculated property,其值取决于Attribute2

的值
Import-Csv 'C:\input.csv' |
  Select-Object -Property *,
    @{n='Data';e={if ($_.Attribute2 -eq 'Valueb1') {'Found'} else {''}}} |
  Export-Csv 'C:\output.csv' -NoType