一尘不染

为什么我无法在Windows 10中运行的jenkins管道中运行批处理文件?

jenkins

我正在尝试运行詹金斯工作区中存在的批处理脚本。我写了一个如下所示的常规脚本

stage('batchscript') {
   steps{
      bat 'start cmd.exe /c C:\\Program Files (x86)\\Jenkins\\workspace\\jenkins Project\\batchfile.bat'\
   }
}

当我构建作业时,应该打开一个新的命令窗口,并在执行所有bat命令的新命令提示符下运行批处理文件。构建成功,但是没有打开任何命令窗口。任何建议都会有帮助


阅读 355

收藏
2020-07-25

共1个答案

一尘不染

Jenkins旨在在 后台 模式下执行shell命令,而不是在 交互 模式下执行。

单线

如果您需要使用jenkins执行简单的批处理命令:

stage('build') {
      cmd_exec('echo "Buils starting..."')
      cmd_exec('echo "dir /a /b"')
}

def cmd_exec(command) {
    return bat(returnStdout: true, script: "${command}").trim()
}

这是一个高级示例:

多行

steps {
  echo 'Deploy to staging environment'

  // Launch tomcat
  bat """
    cd c:\\qa\\bin
    dir /a /b
    startup
  """

  bat """
    cd c:\\qa\\bin
    startup
  """

  // Code to move WAR to Tomcat
  bat "xcopy /y c:\\webapp\\target\\webapp.war ..."
  bat "xcopy /y c:\\webapp\\target\\webapp.war ..."
}

例:

调用批处理文件

如果您需要使用jenkins执行批处理文件:

stage('build') {
  dir("build_folder"){
      bat "run_build_windows.bat"
  }
}

要么

stage('build') {
  bat "c://some/folder/run_build_windows.bat"
}

Windows路径有些奇怪:无论如何,Linux是托管jenkins的最佳选择。

2020-07-25