使用PowerShell将列添加到多个.csv文件

时间:2014-05-06 17:42:01

标签: powershell csv multiple-files

我有一些.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
}

1 个答案:

答案 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
}