CSV文件处理Windows脚本,最好的工具,最简单的方法?

时间:2010-11-18 15:51:24

标签: windows csv batch-file

在Windows平台上,尽可能使用最少的工具(更喜欢只使用内置工具,如CMD,但我意识到可能需要像sed这样的东西);我想创建一个脚本,其执行如下。

它应该输入一个csv文件,从该文件中提取某些字段,然后输出一个包含提取字段的新的,唯一格式化的输出csv文件。例如。

Input.csv
Cust#, CustFName, CustLName, Address, City, State, Zip, Order#, Qty, Part, Cost, Total,,,,

Output.csv
,,, Qty, City,,,, CustFName,,, Total,,, Zip,,,

csv文件会改变记录的数量。有些将有3条记录,有些则有10,000条记录。

1 个答案:

答案 0 :(得分:0)

您可以使用自Win2K以来几乎所有Windows系统都可用的VBscript。这是一个例子,假设你没有“引用”逗号。

Dim fso, f2, ts, ts2, line, records
Const ForReading = 1, ForWriting = 2, ForAppending = 8

Set fso = CreateObject("Scripting.FileSystemObject")
Set tf1 = fso.OpenTextFile("infile.txt", ForReading, false)
Set tf2 = fso.OpenTextFile("outfile.txt", ForWriting, true)
Do While Not tf1.AtEndOfStream
    line = tf1.ReadLine
    records=Split(line,",")
    ' ... process your records here '
    line = Join(records,",")
    tf2.WriteLine line
Loop
tf1.Close
tf2.Close

从cmd行运行,如“cscript yourscript.vbs”。对于“真实”的东西,你可能需要添加一些代码来处理不同数量的记录,记录中逗号是引用记录的一部分,等等,但一般方法应该是明确的。

以下是MS Win2K脚本指南中的另一个示例:

http://technet.microsoft.com/en-us/library/ee176692.aspx

相关问题