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
Jenkins is aimed to execute shell commands in background mode, not for interactive mode.
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.
来源:https://stackoverflow.com/questions/53149603/why-am-i-not-able-to-run-batch-file-in-jenkins-pipeline-running-in-windows-10