Jenkins中的Windows批处理命令失败。

6

我已经在Docker中设置了Jenkins并能够运行一些ANT脚本,现在我需要运行一些“Windows批处理脚本”。我尝试了一个基本的命令echo "Hello",但是我得到了以下错误...我认为它希望cmd.exe在我的工作空间中???请问有人可以帮助我解决这个问题吗?谢谢。

[CI] $ cmd /c call /tmp/hudson5615964182226568321.bat
FATAL: command execution failed
java.io.IOException: Cannot run program "cmd" (in directory "/var/jenkins_home/workspace/CI"): error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at hudson.Proc$LocalProc.<init>(Proc.java:243)
at hudson.Proc$LocalProc.<init>(Proc.java:212)
at hudson.Launcher$LocalLauncher.launch(Launcher.java:815)
at hudson.Launcher$ProcStarter.start(Launcher.java:381)
at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:95)
at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:64)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
at hudson.model.Build$BuildExecution.build(Build.java:205)
at hudson.model.Build$BuildExecution.doRun(Build.java:162)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
at hudson.model.Run.execute(Run.java:1720)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:404)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)

“执行Windows批处理命令”构建步骤标记该构建为失败。

已完成: FAILURE(失败)。

3个回答

5

您的Jenkins设置必须在Linux中进行,当您选择“Windows批处理命令”时,该命令将无法在Linux系统中运行。

因此,系统告诉您cmd无法在Unix机器上执行。

Cannot run program "cmd" (in directory "/var/jenkins_home/workspace/CI"): error=2, No such file or directory

我明白了,Shell 正常运行。感谢您的帮助。 - Sri
我正在使用dotnet发布命令,但出现了“找不到dotnet”的错误。有什么提示吗? - Krunal

3

在我的情况下,由于Jenkins运行在一个提供基于Linux的系统的虚拟机上,而这个虚拟机是在Windows操作系统上运行的。我们不能执行Windows批处理命令,因为Jenkins是在基于Linux的虚拟机上运行的。

因此,我们必须运行shell脚本。 只需选择“执行Shell”而不是“执行Windows批处理命令”即可。


0

我在一个Windows服务器上遇到了相同的错误。 我使用Scriptler脚本使用Active Choices参数,并忘记填写参数的名称。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接