2010-11-18 98 views
0

在Windows平臺上,使用盡可能少的工具(更喜歡只使用內置工具,如CMD,但我知道像sed這樣的東西可能是必需的);我想創建一個腳本,其執行如下。CSV文件處理Windows腳本,最好的工具,最簡單的方法?

它應該輸入一個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條記錄。

回答

0

您可以使用VBscript,它應該在自Win2K以後的幾乎所有Windows系統上都可用。這裏是一個例子,假設你沒有「引用」逗號。

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