|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Прошу помочь с проверкой корректности работы программы, по книгам все должно работать |
|
VBS/WSH/JS - Прошу помочь с проверкой корректности работы программы, по книгам все должно работать
|
Новый участник Сообщения: 2 |
Добрый день!
Прошу помочь с проверкой корректности работы программы, по книгам все должно работать, но не работает. Описание требований к программе. Есть две папки. В первую папку поступают файлы, их нужно скопировать во вторую, при этом нужно провести преобразование файла с помощью внешней программы (через командную строку) и итог перенести во вторую папку, исходный файл должен остаться без изменений. Проблемы: 1. Программа не проверяет наличие временного файла, который надо удалить или не удаляет (так и не смог понять) 2. После первой конвертации программа вылетает с ошибкой, что не удается найти указанный файл или что отсутствует необходимый параметр (нет исходного файла, который будет преобразовываться), хотя имя файла получалось из этой же папки. Option Explicit Const pathepd = "C:\22\Ext\EPD" 'путь к исходным файлам выписок задается в виде константы Const pathin = "C:\22\In" 'путь к измененным файлам выписок задается в виде константы Const filetmp = "C:\22\Ext\EPD\tmpfile.xml" 'путь и имя временного файла Const filetmpzzz = "C:\22\Ext\EPD\zzz.xml" 'путь и имя временного файла Const filetmpzzz1 = "C:\22\In\1.xml" Const pathepdtmp = "C:\22\Ext\EPD\" Dim rebildxml, kolvofactual, nametmp, nametmp2, copyactual, tmpFile, fsotmp, copyactualtmp 'создание переменной для преобразования файла Dim Text, fso, fso2, epdFile, epdFiles, epdFolder, epd, kolvofepd 'создание переменных для получения списка файлов Dim inFolder, inFiles, inFile, maskFile, kolvofin, Text1, i, j Dim epdFilemassiv(50) 'массив для записи имен файлов папки EPD Dim inFilemassiv(50) 'массив для записи имен файлов папки Inf kolvofactual = 0 Dim actualFilemassiv(50) 'массив для записи имен необработанных файлов папки EPD, не присутствующих в Inf i = 0 j = 0 kolvofepd = 0 kolvofin = 0 nametmp = "" nametmp2 = "" Set epd = WScript.CreateObject("WScript.Shell") Set fso = WScript.CreateObject("Scripting.FileSystemObject") 'создание объекта для получения доступа к ФС Set epdFolder = fso.GetFolder(epd.ExpandEnvironmentStrings(pathepd)) 'получение объекта "Папка" EPD Set inFolder = fso.GetFolder(epd.ExpandEnvironmentStrings(pathin)) 'получение объекта "Папка" Inf Set rebildxml = WScript.CreateObject("WScript.Shell") 'преобразование xml ' получение списка файлов из папки EPD If fso.FolderExists(pathepd) Then ' получение списка файлов из папки EPD и Inf Set epdFiles = epdFolder.Files ' получение файлов Set inFiles = inFolder.Files ' получение файлов ' запись в массивы "o" For i=0 To 50 epdFilemassiv(i) = "o" inFilemassiv(i) = "o" Next For Each epdFile In epdFiles 'получение количества файлов и запись имен файлов в epdFilemassiv If fso.GetExtensionName(epdFile) = "xml" Then epdFilemassiv(kolvofepd) = epdFile.Name kolvofepd = kolvofepd + 1 End If Next For Each inFile In inFiles 'получение количества файлов и запись имен файлов в inFilemassiv If fso.GetExtensionName(inFile) = "xml" Then inFilemassiv(kolvofin) = inFile.Name kolvofin = kolvofin + 1 End If Next If kolvofepd >= kolvofin Then ' если колво файлов в EPD больше или равно чем в In ищем уникальные имена kolvofactual = kolvofepd - kolvofin 'получаем кол-во новых файлов For i=0 To kolvofepd For j=0 To kolvofin If (epdFilemassiv(i) = inFilemassiv(j)) Then ' если имена в массивах одинаковые, обнуляем имена epdFilemassiv(i) = "o" inFilemassiv(j) = "o" End If Next If (epdFilemassiv(i) <> "0") Then 'получаем уникальные не нулевые имена If (epdFilemassiv(i) <> inFilemassiv(j)) Then actualFilemassiv (i) = epdFilemassiv(i) ' "-" - между не нулевыми строками могут быть нулевые. End If End If Next End If For i=0 To kolvofactual ' сортируем нулевые строки, чтобы они были в конце If (actualFilemassiv (i) = "o") Then ' если строка нулевая, то на нулевую строку записываем следующую actualFilemassiv (i) = actualFilemassiv (i+1) actualFilemassiv (i+1) = "o" copyactual = copyactual & pathepd &"\"& actualFilemassiv (i) & vbCrLf MsgBox copyactual End If Next MsgBox copyactual 'файл !_new.bat создает временный преобразованный файл, в "rebildxml" подается команда на преобразование. в этом блоке возникают ошибки For i=0 To kolvofactual copyactualtmp = pathepdtmp & actualFilemassiv (i) 'получение полного пути (путь до папки файла + название актуального файла) 'copyactual = copyactual & vbCrLf MsgBox copyactualtmp 'Set tmpFile = fsotmp.GetFile(copyactual) 'tmpFile.Copy filetmp, true If (fso.FileExists(copyactualtmp)) Then ' проверка наличия актуального файла (возможно проверка проходит некорректно) If (fso.FileExists(filetmpzzz1)) Then ' проверка наличия временного преобразованного файла (возможно проверка проходит некорректно) 'Set tmpFile = fso.GetFile(filetmpzzz1) fso.DeleteFile filetmpzzz1, true ' файл не удаляется (возможно проверка проходит некорректно) End If copyactual = "C:\11\!_new.bat " & copyactualtmp MsgBox copyactual rebildxml.Run(copyactual) ' корректно преобразуется только первый файл, на следующем вылетает с ошибкой Set rebildxml = Nothing 'Set tmpFile = fsotmp.GetFile(filetmpzzz1) ' fso.DeleteFile filetmpzzz1, true ' файл не удаляется (при снятии комментария ругается) End If Next Else MsgBox "Ненайдена папка C:\22\Ext\EPD" End If Прошу помочь с проблемой. С уважением russv |
|
Отправлено: 16:24, 28-04-2014 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прошу помочь по сборке компьтера!Все кто может помочь советом , сюда!Пожалуйста! | YuiMaster | Выбор отдельных компонентов компьютера и конфигурации в целом | 1 | 08-11-2013 19:49 | |
Прошу помочь с установкой программы | Absolute Zero | Хочу все знать | 1 | 19-02-2009 00:06 | |
Прошу помочь с проверкой компьютера | gorill | Лечение систем от вредоносных программ | 3 | 03-02-2009 11:40 | |
[решено] Прошу помочь с проверкой моего компьютера | sztksales | Лечение систем от вредоносных программ | 53 | 18-01-2009 20:06 |
|