2013-08-02 3 views
0

Мне нужно выполнить скрипт на Window Server 2008. Я использую Jenkins для этого. Код партии (MainCode.bat) равенВыполнение VBS через пакетный скрипт в Jenkins

cd "C:\temp" 
cscript install.vbs 

Установка.vbs просто устанавливает приложение в определенном каталоге. Экстракт код:

Set wshshell = wscript.CreateObject("WScript.Shell") 
strCmd = "cmd /K C:\temp\InstallApp.exe -c -dir C:\ProductDir" 
Wshshell.run (strCmd) 
WScript.Sleep 2000 
' choice of languages 
WshShell.SendKeys "1" 
WshShell.SendKeys "~" 
    ... 

Чтобы проверить это сценарии я побежал MainCode.bat на Window Server 2008 непосредственно и он работал как шарм.
При запуске через Jenkins скрипт не выполняется. Нет сообщения об ошибке, и установка не выполняется.

Via Дженкинс код для вызова MainCode.bat является

call "C:\temp\MainCode.bat". 
+0

Что говорит журнал для работы Дженкинса? Почему вы заключаете, что скрипт не выполняется? Как 'MainCode.bat',' install.vbs' и 'InstallApp.exe' копируются в' C: \ temp'? Могут ли команды для 'InstallApp.exe' быть улучшены, поэтому не нужно' SendKeys'? («Реальные» установщики могут использоваться без присмотра, если не молча.) –

+0

@TomBlodget: Спасибо за d Ques. Я не получаю журнал для работы Jenkins, а я получаю консольный вывод, в котором говорится: «C: \ Temp> exit 0 Уведомление о завершающих проектах завершения работы Закончено: УСПЕХ. Я пришел к выводу, что сценарий не выполняется из-за того, что не создан ни этот каталог C: \ ProductDir, ни установщик. Я вручную копирую MainCode.bat, install.vbs и InstallApp.exe в C: \ Temp, а затем выполняю ode через Jenkins. Хотя я написал код для копирования, и он работает. – Kriti

+0

Так что никаких проблем с копированием. Я думаю, что нет другого варианта, кроме ** Sendkeys ** (хотя я пытался сделать динамический код, но его способ осложнился, поэтому я сейчас сосредоточен на ** Sendkeys **). Надеюсь, я ответил на ваш вопрос. :) – Kriti

ответ

3

Как вы используете SendKeys я предполагаю, что процесс запуска является приложение с графическим интерфейсом. Вероятно, вы используете подставку Jenkins под безголовым режимом в качестве службы Windows, в этом случае приложение GUI будет иметь проблемы. Вы должны запустить подчиненный агент Jenkins как jnlp.

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