CSV-файл для обработки сценариев Windows, лучшие инструменты, самый простой подход? - PullRequest
0 голосов
/ 18 ноября 2010

На платформе 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 голосов
/ 18 ноября 2010

Вы можете использовать VBscript, который должен быть доступен практически во всех системах Windows начиная с Windows 2000. Вот пример, если у вас нет запятых в кавычках.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...