我有大约 20 个文件夹,每个文件夹都有大约 100 个 csv 文件。我想将它们全部合并为一个文件。我该怎么做?我知道合并copy
一个文件夹的文件的命令。如果我这样做,我会得到 20 个文件夹中的 20 个文件。要合并它们,我将如何遍历每个文件夹并执行?
我正在尝试编写如下批处理脚本:
FOR /D /R %G in ("*") DO (
cd %G
COPY *.csv new.csv )
但是,它不能正常工作。有什么建议吗?
答案1
如果所有文件确实都是有效的 CSV,则修改最后一行以使用变量 %H 循环遍历当前文件夹中的文件,将副本更改为:
TYPE %H >>new.csv
应该可以工作(恐怕还没有经过全面测试)。
但是,更好的方法是使用 PowerShell,因为它具有处理 CSV 输入和输出的 cmdlet,因此它能够处理文件结构中的任何异常而不会破坏输出。
答案2
我让第一部分工作起来了,即将每个子文件夹中的所有 csv 文件合并为一个 csv 文件。所以,我有 20 个 csv 文件。错误是单个%
。应该是%%G
。
FOR /D /R %%G in ("*") DO (
cd %%G
COPY *.csv new.csv )