【发布时间】:2020-06-12 13:18:01
【问题描述】:
我需要更新.csv 文件而不添加任何额外的行或新行,因此我只需要更新单行数据。输入数据是行的形式,我正在使用foreach循环。
请帮忙指导一下。
【问题讨论】:
标签: arrays powershell export-to-csv
我需要更新.csv 文件而不添加任何额外的行或新行,因此我只需要更新单行数据。输入数据是行的形式,我正在使用foreach循环。
请帮忙指导一下。
【问题讨论】:
标签: arrays powershell export-to-csv
我会逐步使用ForEach 并遍历每一行,更改需要更改的行,然后创建一个新的输出文件。
想象一个像这样的.csv
Animal,Name,Age
Cat,Finnegan,3
Cat,Pippin,5
Dog,Fido,2
Lizard,Draco,1
假设我想将动物类型从蜥蜴更改为猫。
$csv = import-csv C:\Path\To\Your.csv
$outputFile = New-Object System.Collections.ArrayList
ForEach($row in $csv){
If ("Lizard" -eq $row.Animal){
Write-Output "Changing Animal type for $($row.Name) from $($row.Animal) to 'Cat'"
$row.Animal = 'Cat'
}
$outputFile.Add($row) | Out-Null
}
$outputFile | Export-Csv c:\Path\To\Updated.csv -NoTypeInformation
这将为任何更改的行提供此输出:
Changing Animal type for Draco from Lizard to 'Cat'
您只需自定义它以满足您的需要。
【讨论】:
import-csv c:\temp\t.csv -Header Animal,Dog,Cat。如果这对您有帮助,请记得标记为答案。