我需要一个批处理文件,它将匹配通配符的文件夹中的所有CSV文件合并到新的合并CSV文件中,并且在每个合并行中,它将在每个传输的字符串末尾添加原始文件名。我尝试了这个不起作用的命令:
for /F "tokens=1* delims=" %%i in (^"SO_*.csv^") do @echo %%i,%%~ni >> MERGED.csv
它没有拾取行,它只是选取“SO _ *。csv”以及第一个实际文件的文件名,将它们放入MERGED.csv并停止。
我哪里出错了?
提前致谢。
答案 0 :(得分:3)
@echo off
break > merged.csv
for %%f in (so_*.csv) do for /F "tokens=*" %%g in ('type "%%f"') do echo %%g,%%f >> merged.csv
或者更快的方法
@echo off
break > merged.csv
for /F "tokens=1,* delims=:" %%f in ('findstr /R "." so_*.csv') do echo %%g,%%f >> merged.csv