这是此处问题的延续。批处理脚本:将多个文件夹中的多个文件合并为一个文件
我有 20 个名为“new.csv”的文件,它们位于同一父目录中的 20 个文件夹中。我想将它们全部合并为一个文件。因此,我想分两步完成。
我正在使用 XCOPY 将每个文件夹的每个 new.csv 复制到父文件夹中的 new1、new2、new3 等。如果我可以这样做,在我的父文件夹中,我有 20 个 csv,new1、new2..new20.csv。
然后,我只需执行
copy new*.csv final.csv
。因此,这是我编写的代码,用于new.csv
从父文件夹中的每个文件夹复制这些内容。setlocal EnableDelayedExpansion set /a i=0 FOR /D /R %%G in ("*") DO ( cd %%G set /a i=i+1 XCOPY new.csv ..\new%!i!%.csv )
问题在于创建新文件。我想创建 20 个文件,名称分别为 new1.csv、new2.csv、new3.csv...new20.csv。计数器值正在增加,但我无法将其附加到“new”中。你能帮忙吗?
答案1
谢谢!我会用自己能用的方法回答自己。我将最后一行替换成这样。
XCOPY new.csv ..\new_!i!.csv
答案2
如果您想要合并 CSV 中列出的各个 CSV 的完整路径,请使用以下命令:
for /r %f in (*.csv) do @echo "%f" >> New.csv && echo. >> New.csv && type "%f" >> New.csv && echo. >> New.csv && echo --- >> New.csv
如果您只想要 CSV 内容,请使用以下命令:
for /r %f in (*.csv) do @type "%f" >> New.csv && echo. >> New.csv
echo.
在文件中添加换行符,如果不需要进一步缩短命令,可以将其删除。
这些命令必须在父目录中输入。如果您在批处理文件中使用它们,只需记住将每个 % 符号重复两次即可。