我有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文件都有一个页眉和一个页脚。 我不想保留任何文件的页眉或页脚。 有什么建议我需要添加到上面的代码中删除页眉和页脚??? 谢谢!
答案 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'