合并CSV文件,批处理文件,包括各行名 [英] Merging CSV files with batch file including filename in each line
问题描述
通过搜索previous问题找不到任何匹配我的。
我需要将合并文件夹中的所有CSV文件通配符匹配到新合并的CSV文件的批处理文件,并在每一行合并将在每个传递字符串的结尾加上原来的文件名。我试过这个命令,没有工作:
FOR / F令牌= 1 * delims =%% i的(^SO _ * ^ CSV)做@echo %%我,%%〜妮> > MERGED.csv
它不拿起线,它只是拿起SO _ *。csv格式,也是第一个实际文件的文件名,将其放入MERGED.csv并停止。
我在哪里出了错?
先谢谢了。
关闭@echo
打破> merged.csv
在%% F(。所以_ * CSV)做/ F令牌= *%%克(类型%% F')做回声%%克,%% F>> merged.csv
还是为了更快的方法
关闭@echo 打破> merged.csv
FOR / F令牌= 1,* delims =:('。FINDSTR / R所以_ * CSV')%% f由于做回声%%克,%% F>> merged.csv
searched through previous question couldn't find any matching mine.
I need a batch file that would merge all CSV files in a folder matching a wildcard to a new merged CSV file and also in each merged line it would add the original file name at the end of each transferred string. I tried this commands that didn't work:
for /F "tokens=1* delims=" %%i in (^"SO_*.csv^") do @echo %%i,%%~ni >> MERGED.csv
it doesn't pick up lines, it just picks up "SO_*.csv" and also a file name of the first actual file, puts them into MERGED.csv and stops.
where have i gone wrong?
Thanks in advance.
@echo off
break > merged.csv
for %%f in (so_*.csv) do for /F "tokens=*" %%g in ('type "%%f"') do echo %%g,%%f >> merged.csv
Or for a faster approach
@echo off
break > merged.csv
for /F "tokens=1,* delims=:" %%f in ('findstr /R "." so_*.csv') do echo %%g,%%f >> merged.csv
这篇关于合并CSV文件,批处理文件,包括各行名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!