Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Прошу помочь с проверкой корректности работы программы, по книгам все должно работать

Ответить
Настройки темы
VBS/WSH/JS - Прошу помочь с проверкой корректности работы программы, по книгам все должно работать

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день!

Прошу помочь с проверкой корректности работы программы, по книгам все должно работать, но не работает.

Описание требований к программе. Есть две папки. В первую папку поступают файлы, их нужно скопировать во вторую, при этом нужно провести преобразование файла с помощью внешней программы (через командную строку) и итог перенести во вторую папку, исходный файл должен остаться без изменений.

Проблемы:
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

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Прошу помочь с проверкой корректности работы программы, по книгам все должно работать

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прошу помочь по сборке компьтера!Все кто может помочь советом , сюда!Пожалуйста! 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




 
Переход