将选定的数据从.csv文件中提取到另一个文件

时间:2013-10-15 13:30:20

标签: batch-file csv

我需要知道是否可以创建批处理.bat文件以从.csv中提取几行,并将这些选定的行保存到另一个.csv文件中。我已经阅读了这个网页上的另一个主题,我只能找到如何将csv拆分为几个文件,将其切割一定数量的行(例如将其切割成最多500行的csv文件)。

在我想管理的csv文件中,有几行具有相同结构的数据。

我想从另一个.csv文件中提取这些过滤的一些行,这些行的票号位于某一位置的每一行。我不想在导出文件的原始文件中进行任何更改,我只想将这些文件复制到另一个.csv中。例如,如果我有这些行:

19/09/2013 123456789
19/09/2013 231564215
19/09/2013 456464231
19/09/2013 564659832
19/09/2013 000000054

如图所示,票号始终位于第12位和第21位之间。在这个例子中,我想提取到另一个csv文件的票号为“231564215”和“564659832”的行。因此,新.csv文件中的数据必须是:

19/09/2013 231564215
19/09/2013 564659832

我需要脚本来询问您要从中提取和保存数据的原始文件的名称,并且显然要询问您要提取的票证数量(由回车符分隔例)。我希望获得的序列是这样的:

CMD Says: Please select the file you would like to convert
I type: c:/Documents and setting/Marta/testFile.csv
CMD Says: Please enter the list of tickets you want to export
I type: 231564215
564659832
CMD Says: Exporting data...
CMD: Export process finished. Your new file is c:/Documents and setting/Marta/exportedData.csv

NB:抱歉我的英语不好,我是西班牙语

1 个答案:

答案 0 :(得分:0)

<强>编辑

根据您提供的示例文件,所需的数字不能与每条记录的任何其他部分混淆,因此会返回您需要的数据:

@echo off
( for /f "usebackq delims=" %%a in ("Ticket Numbers.txt") do find ",%%a," <"originalFile.csv"  )>"newfile.csv"

这是将数据转换为新文件的有用方法吗?