2014-08-31 166 views
4

是否可以使用批处理文件将多个CSV文件[同一目录]合并为一个文件?如果是这样,我该怎么做?使用批处理文件合并多个csv文件

我认为这将适用于任何ASCII文件?

+0

那些文件的列类型是否完全相同? – rostok 2014-08-31 20:51:48

+0

是的,完全一样。 – 2014-08-31 20:52:59

+0

查看[合并/合并/将文本或CSV文件的内容复制到一个新文件](https://www.ultraedit.com/forums/viewtopic.php?f=52&t=7118)UltraEdit脚本解。我在那里也写了为什么我使用脚本并且不使用命令'copy'。 – Mofi 2014-08-31 20:55:48

回答

7
copy *.csv merged.csv 

copy file1+file2+… merged.csv 

用于更复杂的脚本,避免了重复的标题,见Batch Combine CSV Remove Header

+1

如果CSV在第一行中有列名,这将在merged.csv中得到重复。没有什么大不了,如果输出用于手动处理,但如果处理不当可能会出现一些错误 – rostok 2014-08-31 20:59:50

+0

@rostok此页面(选项2)可以解决问题:https://www.itsupportguides.com/office- 2010 /如何对合并-多的CSV文件 - 到 - 一个CSV文件,使用-CMD / – 2017-01-01 11:30:14

1

有时候你想知道从哪个文件来什么线。 如果只是用

副本* .CSV merged.csv

你会得到粘贴文件一前一后,没有办法知道哪条线从哪个文件来了。

解决方案涉及使用grep.exe实用程序。 http://gnuwin32.sourceforge.net/packages/grep.htm

一旦你拥有了它(并添加其位置到PATH),转到该CSV文件的文件夹,并在命令shell中运行这个命令::您可以从地方,如这一个得到它

grep -e^a * $ * .csv> t.txt

结果将会是所有的文件都被添加到t.txt中,并在每行的开头附加了文件名,用“:” “从文件的文本。

实施例:

file1.csv

此,线

,从

文件,1

file2.csv

此,行

,从

文件,2

运行grep命令后,t.txt将有:

file1.csv:这个,行

file1.csv:是,从

file1.csv:文件,1

file2.csv:这个,行

file2.csv:是,从

file2.csv:文件,2

变化t.txt .t.csv,并在Excel中打开。 下一步是采用第一列并将其分割为两列,使用“:”作为分隔符(数据 - >文本到列 - >分隔符,并选择“其他”并在该字段中输入“:”。)

小心!在列A和B之间添加一个新列,以便当列A分成2列时,它不会覆盖列B的内容。

请注意,如果第一个csv字段中的文本包含“:”这将会变得更加困难,因为列A将分成两列以上。

另外,有关重复标题的注释也在此处保留。