这是我的担忧。我有一个包含多个 .csv 文件的文件夹,我想将它们组合/合并到一个 csv 文件中,但我需要将每个 csv 的文件名添加为 .csv 本身的一列,以便我可以知道哪个条目来自合并文件中的哪个 csv 文件。我没有编码经验,但是我在网上找到了一些应该可以做到这一点的解决方案。
最简洁的是这一行命令行:
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 文件之间的唯一区别是其他文件(它不起作用)是从互联网下载的,而这个文件是我创建的。
有人可以帮忙吗?
更新:刚刚检查过,当我重命名文件时它可以工作吗?
我试图重现您的情况...据我所知,您的命令运行得很好。这是我尝试过的(在 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”)。
您提到它在针对从互联网下载的文件执行时不起作用。您能否提供有关这些文件的更多详细信息?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)