我正在使用Jenkins 2.46.1 我安装了一个构建管道插件,我想在其中执行一个Windows批处理文件。批处理文件应该在新的命令窗口中执行,而不是在jenkins控制台输出上执行。我给出了以下Jenkins管道groovy脚本:
node {
stage 'Init'
bat '''
call C:\\myprj\\mybat.bat stop
EXIT /B 0
'''
stage 'Deploy'
bat '''call C:\\myprj\\mybat.bat'''
}
在 init 阶段,如果进程已经打开并且在阶段部署,我想要终止进程,它应该打开一个新的命令窗口并运行我的批处理文件。 问题是以上不起作用。构建成功但没有打开命令窗口。请建议
答案 0 :(得分:5)
从技术上讲,要做你所要求的,你应该能够运行
bat 'start cmd.exe /c C:\\myprj\\mybat.bat'
这将启动一个新命令windows(cmd.exe)并运行给定的批处理文件。根据Jenkins奴隶的运行方式,您可能看不到任何东西。 (例如,如果它作为Windows服务或不同的用户运行,您将看不到任何内容)
答案 1 :(得分:1)
如果代理程序正在服务中运行并且您希望获得输出,则为替代解决方案:
bat(readFile("mybat.bat"))
注意:bat文件将需要在您的工作空间中。
其他说明:您不再从原始位置运行bat文件。相反,它是从基础持久性任务系统创建的临时位置运行的。这意味着脚本中的%~dp0
之类的内容不会返回您期望的路径。