Vitalka84
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Доброго времени суток! Стоит следующая задача: - на удалённом ftp сервере есть каталог в который стекаются файлы в формате .csv. - нужно скачать файлы локально и перекодировать их в формат .xls Все эти действия должны происходит в результате запуска одного .bat файла. Скачивать файлы проблем не составляет, но автоматически перекодировать - проблема. В интернете много написано как это сделать при помощи TotalCSVConverter и ему подобных программ, которые можно запускать с командной строки. Но нормальные программы платные, а всё что я нашёл "шаровое" работает криво либо вообще не работает... Как вариант решил обратится к VBA. Признаюсь сразу, что до этого никогда ничего не писал на VBA. Нашёл скрипт, который перекодирует .csv в .xls: const xlCSV = 6 const xlTextMSDOS = 21 const xlWorkbookNormal = -4143 const wdFormatRTF = 6 const wdFormatDocument = 0 const wdFormatText = 2 const wdFormatDOSText = 4 Z = WScript.Arguments.UnNamed.Item(0) Set ExcelApp = CreateObject("Excel.Application") ExcelApp.DisplayAlerts = False ExcelApp.WorkBooks.Open "D:\test.csv" ExcelApp.ActiveWorkbook.SaveAs "D:\test.xls", xlWorkbookNormal ExcelApp.Quit Далее попытался "научить" скрипт перекодировать все файлы в каталоге. Как параметр Z передаю путь к каталогу: const xlCSV = 6 const xlTextMSDOS = 21 const xlWorkbookNormal = -4143 const wdFormatRTF = 6 const wdFormatDocument = 0 const wdFormatText = 2 const wdFormatDOSText = 4 Z = WScript.Arguments.UnNamed.Item(0) Dim x as String Dim file as string x = "Z" file = Dir(x) Do While file <> "" Set ExcelApp = CreateObject("Excel.Application") ExcelApp.DisplayAlerts = False ExcelApp.WorkBooks.Open "x & file" ExcelApp.ActiveWorkbook.SaveAs "x.xls", xlWorkbookNormal ExcelApp.Quit file = Dir Loop При запуске скрипта с cmd вылетает ошибка: D:\test.vbs(9, 7) Ошибка компиляции Microsoft VBScript: Предполагается наличие окончания инструкции Ругается на строку: Dim x as String Но что в ней не так? Или вообще весь скрипт написан не правильно? Запускаю с cmd так: cscript.exe test.vbs D:\csv\ ОООчень прошу помощи. Заранее огромное спасибо! |