从导入的.csv中删除页眉和页脚

时间:2014-03-28 20:17:08

标签: powershell export-to-csv

我有3个.csv文件,我合并为一个。这段代码有效:

    Get-ChildItem 'C:\Scripts\testing\csvStuffer\temp\Individual.*.csv' | 
        ForEach-Object {Import-Csv $_} | 
        Export-Csv -NoTypeInformation 'C:\Scripts\testing\csvStuffer\temp\MergedCsvFiles.csv'

问题是每个.csv文件都有一个页眉和一个页脚。 我不想保留任何文件的页眉或页脚。 有什么建议我需要添加到上面的代码中删除页眉和页脚??? 谢谢!

2 个答案:

答案 0 :(得分:0)

这不是最优雅的解决方案,但它适用于我的测试文件。

Get-ChildItem 'C:\Scripts\testing\csvStuffer\temp\Individual.*.csv' | 
        ForEach-Object {
            $filecontent = get-content $_ | select-object -skip 1;
            $filecontent | select -First $($filecontent.length -1) | Set-Content -Path $_;
        };

使用select-object可以轻松删除第一行。删除最后一行需要更多的工作,但由于get-content返回一个行数组,你可以抓住该数组中除最后一个元素之外的所有元素。

答案 1 :(得分:0)

看起来alroc已经给出了答案,但是因为我已经把它写了,所以我想我也会发布这个。它不会将它全部加载到变量中,它只是读取每个文件,剥离当前文件的第一行和最后一行,然后通过-append将其传递到out-file。

gci 'C:\Scripts\testing\csvStuffer\temp\Individual.*.csv' | %{
$(gc $_.fullname|skip 1)|select -First ($(gc $_.fullname|skip 1).count-1)
}|Out-File -Append 'C:\Scripts\testing\csvStuffer\temp\MergedCsvFiles.csv'