2013-10-15 84 views
0

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

注:对不起,我的英文不好,我西班牙人

+1

1)我看不到'CSV'文件2)你有什么尝试? – Endoro

回答

0

根据您所提供的示例文件编辑

,所需要的号码不能与每个记录的任何其他部分搞混了,因此该返回数据,您需要:

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

那是一个usefu l将数据导入新文件的方式?

+0

这会给数字嵌入在较大数字中的行进行错误匹配。你可能想''\ <231564215 $ \ <564659832 $“',以便它只匹配整个”单词“。 – dbenham

+0

是的,@dbenham - 我怀疑输入的数据与发布的内容没有任何关系,所以我只是根据发布的数据进行回复,然后等待OP回复。 – foxidrive

+0

感谢你们所有人。如果您希望原始.csv和手动生成的文件与我想要的浴液输出相同,但是我如何在此处附加文件,则可以附加该文件? – arcones

相关问题