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

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


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.


Reference: https://thenucleargeeks.com/2020/11/24/how-to-run-batch-scripts-commands-in-jenkinsfile/

node {        stage('Preparation') {           //Preparations and checkout the code         }        stage('Build') {           //Build command             }        stage('Post build action'){            bat '''  ECHO Hello World  '''            }     }