问题
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
回答1:
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 :
- https://gist.github.com/VladFrost/89e8ccabd40eb0f52374d7982b557c8e
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:
- https://gist.github.com/timothyshort/a1364b36a0ee1c0dca378e6f438c0e1c
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