【问题标题】:read csv file through windows batch file and create txt file通过windows批处理文件读取csv文件并创建txt文件
【发布时间】:2014-09-15 16:02:02
【问题描述】:

我有一个 excel 文件,每行有 5 个值。现在,我想通过批处理文件读取 .csv 文件并使用文件中的内容创建文本文件。 例如,如果我在 csv 文件中有 Apple、Mango(在一列中),那么批处理文件应读取此 .csv 文件并应创建一个文本文件,如“Apple is a fruit”和下一行“Mango is a fruit” .谁能分享一下代码。

【问题讨论】:

  • 将示例输入和输出数据编辑到您的问题中以澄清它。您会发现选择粘贴的副本并按 {} 图标可能会有所帮助。
  • 您好我已经尝试了您提供的代码,但它不是记录数据,而是记录文件的路径。 'FOR %%A IN ('C:\temp\fruit.csv') DO ( echo %%A is a fruit >>test.txt ) ' O/p: Mango is a fruit

标签: batch-file


【解决方案1】:

SOF 中回答了很多类似的问题。很少有人可以参考:

Reading from a csv file and extracting certain data columns based on first column value

Help in writing a batch script to parse CSV file and output a text file

How do you loop in a Windows batch file?

最简单的答案是使用以下方法遍历您的文件:

FOR %A IN (list) DO command [ parameters ]

例子:

CSV 示例:

0,1,2,4
1,1,2,3
2,2,4,6
3,3,6,9

bat文件内容:

for /f "usebackq tokens=1-4 delims=," %%a in ("sample1.csv") do (
      echo %%a %%b %%c %%d )

这里的 tokens=1-4 表示我们希望每行读取 4 列数据

【讨论】:

  • 您好 Girish,感谢您的快速回复。我已经尝试过您提供的代码,但它不是记录数据,而是记录文件的路径。 'FOR %%A IN ('C:\temp\fruit.csv') DO ( echo %%A >>test.txt ) '
  • 如果 CSV 包含这个 1,2,"apples,bananas",4 怎么办?它应该为索引 3 打印字符串 apples, bananas,但它似乎忽略了引号。
猜你喜欢
  • 2020-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-02
  • 1970-01-01
  • 2014-05-29
  • 1970-01-01
相关资源
最近更新 更多