Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
2.8k views
in Technique[技术] by (71.8m points)

why am I not able to run batch file in jenkins pipeline running in windows 10?

I'm trying to run a batchscript present inside the workspace of jenkins. I have written a groovy script as below to do this

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

when I build the job it should open a new command window and run my batch file in a new command prompt executing all the bat commands. The build is succesful but no command window opens up. Any suggestion will be helpfull

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Jenkins is aimed to execute shell commands in background mode, not for interactive(UI) mode. When you run start cmd.exe /c c://some/app.exe a new cmd UI is opened and this will never happen in jenkins.

Single line

If you need to execute a simple batch commands with 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()
}

Here a advanced example :

Multiline

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 ..."
}

Example:

Invoke batch file

If you need to execute a batch file with jenkins :

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

or

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

Windows paths some time are bizarre :s . Anyway, linux is the best choice to host jenkins.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...