2017-01-31 6 views
0

У меня есть VBScript, который запускает тесты TestNG. Перед вызовом тестов он должен загружать файлы .jar тестируемого приложения. Здесь основная часть кода:Файл VBScript самостоятельно удаляется даже без выполнения

'Variables - input args 
Dim objArgs 
Set objArgs = wscript.Arguments 
finalHour = CInt(objArgs(1)) 

Set oShell = WScript.CreateObject("WSCript.shell") 
Set UAC = CreateObject("Shell.Application") 

'save script stating date 
startDay = Day(Now) 
startHour = Hour(Now) 

downloadLink = "http://....ru:.../.../" 
savePath = "C:\monitoring\build-under-test\" 

WScript.Echo "Download jar files from '" & downloadLink & "...'" 

'DownloadFile downloadLink & "some.jar", savePath & "some.jar" 
Dim xHttp: Set xHttp = CreateObject("Microsoft.XMLHTTP") 
Dim bStrm: Set bStrm = CreateObject("ADODB.Stream") 
xHttp.Open "GET", downloadLink & "account.jar", False 
xHttp.Send 

With bStrm 
    .Type = 1 '//binary 
    .Open 
    .Write xHttp.ResponseBody 
    .SaveToFile savePath & "account.jar", 1 '//overwrite 
    .Close 
End With 
xHttp = Nothing 
bStrm = Nothing 

Do 
    WScript.Echo "Executing: run-suite.bat " & objArgs(0) & "  - at " & Now 
    WScript.Echo " finalHour = " & finalHour 
    'With waiting of last command execution 
    oShell.Run "run-suite.bat " & objArgs(0) & " " & objArgs(1) & " false true > C:\monitoring\results\logfiles\" & logBatName, 1, True 

    currentHour = Hour(Now) 
    WScript.Echo " checking: currentHour < finalHour :: " & currentHour & " < " & finalHour 
Loop While currentHour < finalHour 

Проблема заключается в том, что, когда я выполнил этот файл:

cscript.exe "run-monitoring.vbs" "test-suite\monitoring-all-tests.xml" 21 

Этот файл удален сам. Затем, после того как я восстановил файл, он снова удалился без команды run. Поэтому я начал воссоздавать его и комментировать строки, чтобы найти строку, которая принудительно удаляет файл. Это было:

.SaveToFile savePath & "account.jar", 1 '//overwrite 

Когда я удаляю комментарий, файл удаляется сам. Даже после перезагрузки ПК.

Почему это так? Почему файл повторно выполняется, даже если я его не запускаю?

+1

Для меня это обнаружено как «TrojanDownloader.HTML/Adodb.gen! A' от Защитника Windows и перемещено на карантин. Проверьте журнал антивируса. –

+0

* \ * лицоpalm \ **. –

ответ

0

Есть две строки кода, которые работают с теми же ресурсами (.jar файлы)

.SaveToFile savePath & "account.jar", 1 '//overwrite 

и (Java тесты, которые используют эту ОМТ):

oShell.Run "run-suite.bat " & objArgs(0) & " " & objArgs(1) & " false true > C:\monitoring\results\logfiles\" & logBatName, 1, True 

Комментируя любой из этих линий исправляет самоисключение. Поэтому решение, которое я использовал довольно просто: перемещение .jar файл спасительной операции в другой файл VBScript download-jar.vbs и вызвать его в подлиннике:

oShell.run "cscript.exe download-jar.vbs " & downloadJarsLink, 1, True 

Может быть, есть еще один способ (освободить ресурсы после сохранения), но мне нужно быстро и устойчиво решение, и вот оно.

 Смежные вопросы

  • Нет связанных вопросов^_^