【发布时间】:2019-01-28 04:28:08
【问题描述】:
我正在寻找一种方法来复制多个名称完全相同、位于不同文件夹中的 .csv 文件(它们都在同一个目录中)并将它们合并到 1 个 .csv 文件中(我想跳过复制头的第一行,除了第一个文件,并且没有规则在每个 .csv 文件中写入多少行,因此脚本应该识别写入的行以知道合并的行数和合并/以避免空行)。
这是我迄今为止尝试过的:
$src = "C:\Users\E\Desktop\Merge\Input\Files*.csv"
$dst = "C:\Users\E\Desktop\Merge\Output"
Get-ChildItem -Path $src -Recurse -File | Copy-Item -Destination $dst
还有这个:
Get-ChildItem -Path $src -Recurse -File | Copy-Item -Destination $dst |
ForEach-Object {
$NewName = $_.Name
$Destination = Join-Path -Path $_.Directory.FullName -ChildPath $NewName
Move-Item -Path $_.FullName -Destination $Destination -Force
}
有什么帮助吗? :)
【问题讨论】:
-
所有这些 csv 文件都有相同的标题吗?如果是,您可以在循环中使用Import-CSV 来获取所有包含的数据,并将所有数据输出到一个带有Export-CSV 的单个csv 文件,使用参数-Append。
-
是的,它们都有相同的标题。我目前正在努力解决:Get-Content:特定路径的对象不存在,或者已被 -Include 或 -Exclude 参数过滤。
标签: powershell csv merge copy