2

我必须在 Window Server 2008 上执行脚本。我使用 Jenkins 来执行此操作。批处理代码(MainCode.bat)是

cd "C:\temp"
cscript install.vbs

install.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 "~"
    ...

为了测试这个脚本,我直接在 Window Server 2008 上运行了 MainCode.bat,的运行就像一个魅力。
通过 Jenkins 运行时,脚本不会执行。没有错误消息,安装未完成。

通过 Jenkins 调用 MainCode.bat 的代码是

call "C:\temp\MainCode.bat".
4

1 回答 1

4

当您使用 SendKeys 时,我假设您运行的进程是 GUI 应用程序。您可能在无头模式下将 Jenkins slave 作为 Windows 服务运行,在这种情况下 GUI 应用程序会出现问题。您应该将 Jenkins 从代理作为 jnlp 运行。

于 2013-08-07T03:29:24.967 回答