当前位置: 首页 > 面试题库 >

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

富波光
2023-03-14
问题内容

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

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

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


问题答案:

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()
}

这是一个高级示例:

  • https://gist.github.com/VladFrost/89e8ccabd40eb0f52374d7982b557c8e

多行

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

例:

  • https://gist.github.com/timothyshort/a1364b36a0ee1c0dca378e6f438c0e1c

调用批处理文件

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

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

要么

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

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



 类似资料:
  • 问题内容: 我目前正在尝试从管道中将groovy脚本作为节点之一运行,但是遇到了以下错误: 另外,我尝试以Groovy的方式安装插件,但由于某种原因,它将无法安装。每当我刷新工具页面时,安装程​​序就会消失。我安装groovy错误吗?请帮忙! 编辑:相关数据 而且ideainspect.groovy文件是shebang的可执行文件,这可能是问题所在。 问题答案: 您的jenkins用户在使用它时会

  • 问题内容: 我能够运行以下shell脚本,但无法从Jenkins管道代码运行。 尝试1。 输出: 尝试2: 尝试过sh“”“ 输出 : 美元符号后的非法字符串体字符;解决方案:要么转义文字美元符号,要么将值表达式括起来 有人能帮我吗? 问题答案: 这应该工作。 您还需要在调用下面的新subshel​​l时转义$

  • 我有一个Jenkinsfile,其中构建和测试在同一个Slaver上运行。我的要求是,构建必须在一个从站(比如A)上,测试必须在另一个从站(比如B)上运行。 我刚刚设置了奴隶B,我可以看到我的奴隶A和B都在Jenkins- 以下是看到的问题: 1.)在构建阶段成功后,我得到以下错误: " java.lang.NoSuchMethodError:在步骤[archive,bat,build,catch

  • 我使用Jenkins在docker容器中使用以下命令 码头工人拉詹金斯/詹金斯 docker run-p8080:8080--name=jenkins master jenkins/jenkins 获取此错误 calc.py/var/jenkins_home/workspace/pythoncalculator@tmp/耐用-b7e99e01/脚本。sh:1:/var/jenkins\u home

  • 我查看了以下文档:https://docs.sonarqube.org/display/scan/analysy+with+sonarqube+scanner+for+jenkins 然而,我不能让它工作。首先,文档似乎需要更新,因为示例中的语法是错误的。在最新版本的声明性管道中,在-tag中是必需的。此外,-关键字只有在-标记中才会解析。 null

  • 问题内容: 我已经尝试过将docker和jenkins一起使用,两者都安装在我的机器上(w10),并且我使用jankins运行docker镜像。但是,当我按照jenkins文档中的示例(来自doc的示例)时,它不起作用。不涉及时,不同的管道脚本可以工作,我还尝试从jenkins config接口添加。 管道脚本 错误堆栈 我在SO上发现了类似的问题\(相同但没有明确的解决方案) 问题答案: 您的工