我的问题很简单,我有一个csv文件,其格式如下:
Client Status Goal Project
A Done Done Waiting
B Finished Done Cancelled
C Waiting Finished
D Done Done Done
现在,我的问题很简单,例如,我想更新与客户“ B”匹配的“目标”列上的值
我知道我可以执行import-csv并使用计算的属性来修改一列,但我不知道如何修改与另一列中的另一行匹配的列中的特定行。例如,我想将“等待中”更改为已完成的客户端C,或者将“取消中”更改为“等待中的客户端B”。
答案 0 :(得分:1)
您可以这样做:
$csv = Import-Csv 'D:\clientprojects.csv'
($csv | Where-Object {$_.Client -eq 'C'}).Goal = 'Finished'
($csv | Where-Object {$_.Client -eq 'B'}).Project = 'Waiting'
#output on console
$csv
# write to new CSV file
$csv | Export-Csv -Path 'D:\clientprojects-updated.csv' -NoTypeInformation
控制台上的输出:
Client Status Goal Project ------ ------ ---- ------- A Done Done Waiting B Finished Done Waiting C Finished Finished D Done Done Done