合并CSV文件,批处理文件,包括各行名 [英] Merging CSV files with batch file including filename in each line

查看:724
本文介绍了合并CSV文件,批处理文件,包括各行名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

通过搜索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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆