合并.csv并将文件名添加为列

时间:2018-10-21 11:43:56

标签: excel csv cmd merge

这是我的关注。我有一个包含多个.csv文件的文件夹,我想将它们合并/合并到一个csv文件中,但是我需要将每个csv的文件名添加为.csv本身中的一列,这样我才能知道哪个条目来自合并文件中的哪个csv文件。我没有编码经验,但是我在网上找到了一些可以做到这一点的解决方案。

最简洁的是此CMD行:

for /f %a in ('dir /b *.csv') do for /f "tokens=*" %b in (%a) do echo %b,%a >> all.csv

我基本上导航到CMD中的csv文件夹,然后在其中输入此行并执行,但是根本没有输出。所以,我不知道我在做什么错。

奇怪的是,当我在另一个包含csv文件的文件夹中执行它时,它适用于另一个csv文件。该文件与其他csv文件之间的唯一区别是其他文件(不适用于csv文件)是从互联网上下载的,而这个文件是我创建的。

有人可以帮忙吗?

更新:刚刚检查过,当我重命名文件时可以使用该文件吗?

2 个答案:

答案 0 :(得分:0)

我试图重新创建您的情况……据我所知,您的命令运行正常。这是我在Windows上尝试过的方法:

  • 我创建了一个新文件夹。
  • 我在该文件夹中创建了3个csv文件(“ file1.csv”,“ file2.csv”和“ file3.csv”)
  • 我在3个csv文件中的每一个中创建了一条记录(包含3个字段),其中典型的记录看起来像是“ 100、101、102”
  • 我打开命令提示符,导航到包含这些csv文件的文件夹,然后按原样执行命令。
  • 该命令处理了3个csv文件,并创建了一个名为“ all.csv”的新文件。
  • “ all.csv”中的每个记录似乎都是正确的:存在三个数据字段,并且存在第四个字段,其中包含源csv文件的名称(例如“ file1.csv”)。

您提到,对从Internet下载的文件执行此操作无效。您可以提供有关这些文件的更多详细信息吗?

答案 1 :(得分:0)

您需要将每个csv的文件名添加为.csv本身中的一列吗?

在合并该文件夹中的文件之前,您需要根据该文件的列数在每个.csv文件的第一行中创建一个逗号分隔的行,并在文件名中添加您的文件名。