我有一些.csv文件需要修改才能有2个额外的列。 1列标记为“site”,对于同一目录中的所有文件(示例中为0)将相同。另一个只是原始文件名,以便我以后可以合并这些文件但仍保留其原始关系。
我尝试了以下内容,但它只是删除了所有.csv文件:
$files = Get-ChildItem ".\"
for ($i=0; $i -lt $files.Count; $i++) {
$outfile = $files[$i].FullName + "out"
Import-Csv $files[$i].FullName | Select-Object *,@{Name='site';Expression={'0'}},@{Name='trace';Expression={$files[$i].FullName}} | Export-Csv $files[$i].FullName -NoTypeInformation
}
答案 0 :(得分:1)
这些方面的内容如何:
$files = Get-ChildItem ".\" -filter "*.csv"
for ($i=0; $i -lt $files.Count; $i++) {
$outfile = $files[$i].FullName + "out"
$csv = Import-Csv $files[$i].FullName
$newcsv = @()
foreach ( $row in $csv ) {
$row | Add-Member -MemberType NoteProperty -Name 'site' -Value '0'
$row | Add-Member -MemberType NoteProperty -Name 'trace' -Value $files[$i].FullName
$newcsv += $row
}
$newcsv | Export-Csv $files[$i].FullName -NoTypeInformation
}