将CSV文件与包含文件名的批处理文件合并

将CSV文件与包含文件名的批处理文件合并,csv,batch-file,merge,Csv,Batch File,Merge,我想将CSV文件与包含每行文件名的批处理文件合并。 我找到了这篇文章: 但这对我来说不起作用,因为我的CSV文件并不总是有相同数量的列,有时最后一列会丢失。 因此,如果我用逗号分割合并的CSV文件,则文件名不在同一列中 所以我的问题是:是否可以在每个传输字符串的开头设置名称 下面是我的批处理文件: @echo off break > merged.csv for %%f in (*.csv) do for /F "tokens=*" %%g in ('type "%%f"') do ech

我想将CSV文件与包含每行文件名的批处理文件合并。 我找到了这篇文章:

但这对我来说不起作用,因为我的CSV文件并不总是有相同数量的列,有时最后一列会丢失。 因此,如果我用逗号分割合并的CSV文件,则文件名不在同一列中

所以我的问题是:是否可以在每个传输字符串的开头设置名称

下面是我的批处理文件:

@echo off
break > merged.csv
for %%f in (*.csv) do for /F "tokens=*" %%g in ('type "%%f"') do echo %%g,%%f >> merged2.csv

findstr /v UID merged2.csv  > merged2_without_header.csv
如果有人能帮我,那就太好了。我不是一个编码员

最好的,
Peter

在echo命令中反转%%g和%%f。感谢您的回答。它起作用了!还有两个问题:1。我可以把文件名写在另一列吗?因为现在titelname和第一列逗号分隔在同一列中。2.如果我也能将批处理文件用于xlsx文件,那就太好了。但是,如果我替换*.csv,它将不起作用。如果标题名和第一列数据用逗号分隔,而文件数据用逗号分隔,我看不出它们怎么可能在同一列中。这是一个奇怪的CSV,它实际上不使用逗号来分隔值吗?文件日期由TAB separated values.Ah分隔。然后您需要将echo语句更改为%%f%%g,其中是实际的选项卡。