如何使用 groovy 在 jenkins windows slave 上执行 CMD 命令?

How to execute CMD command on jenkins windows slave using groovy?

我正在尝试在 windows 上使用 groovy 在 jenkins slave 运行ning 上执行 cmd /c echo hello

这是我的groovy:

node('WINDOWS-SLAVE-1') {
    def cmd_command = "cmd /c echo hello"
    cmd_command.execute()
}

而且我可以在作业日志中看到它确实在 windows slave 上 运行ning:'Running on WINDOWS-SLAVE-1'

但是我得到一个错误:java.io.IOException: error=2, No such file or directory

如果我尝试 运行 linux 就像 ls -l 它工作正常。给我看我主人的档案。

如何从我的 groovy 脚本在我的 windows jenkins slave 上执行这个 CMD 命令?

如果您打算在给定节点上执行命令,则需要使用 Jenkins 管道的其中一个步骤来执行 shell 脚本(例如 shbat ).您需要注意 Jenkinsfile 中的任何 Groovy 代码始终在 master 节点上执行:

"1. Except for the steps themselves, all of the Pipeline logic, the Groovy conditionals, loops, etc execute on the master. Whether simple or complex! Even inside a node block!"


Source: https://jenkins.io/blog/2017/02/01/pipeline-scalability-best-practice/#fundamentals

node('WINDOWS-SLAVE-1') {
    bat "cmd /c echo hello"
}