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

如何使用groovy在jenkins windows slave上执行CMD命令?,windows,jenkins,groovy,jenkins-slave,Windows,Jenkins,Groovy,Jenkins Slave,我试图在windows上运行的jenkins从机上使用groovy执行cmd/c echo hello 这是我的groovy: node('WINDOWS-SLAVE-1') { def cmd_command = "cmd /c echo hello" cmd_command.execute() } 我可以在作业日志中看到它确实在windows从机上运行:“在windows-slave-1上运行” 但是我得到一个错误:java.io.IOException:error=2,没

我试图在windows上运行的jenkins从机上使用groovy执行cmd/c echo hello

这是我的groovy:

node('WINDOWS-SLAVE-1') {
    def cmd_command = "cmd /c echo hello"
    cmd_command.execute()
}
我可以在作业日志中看到它确实在windows从机上运行:“在windows-slave-1上运行”

但是我得到一个错误:java.io.IOException:error=2,没有这样的文件或目录

如果我试着像ls-l一样运行linux,它会运行得很好。给我看我主人的文件


如何从groovy脚本在windows jenkins slave上执行此CMD命令?

如果您打算在给定节点上执行命令,则需要使用jenkins管道中的一个步骤来执行shell脚本,例如sh或bat。您需要知道,Jenkins文件中的任何Groovy代码都始终在主节点上执行:

一,。除了步骤本身之外,所有的管道逻辑、Groovy条件、循环等都在主机上执行。无论简单还是复杂!甚至在节点块内部

资料来源:

节点“WINDOWS-SLAVE-1”{ bat cmd/c echo你好 }
谢谢我知道'bat'/'sh'选项,但我想使用该命令的执行定义一个流程对象[e.def proc=cmd_command.execute]来控制输出、退出代码等。。我不知道每个groovy命令都是在主机上执行的,所以感谢您为我澄清这一点。@Szymon Stepniak您介意看看类似的问题吗: