通过Jenkins管道的批处理脚本失败,并且-脚本返回了退出代码255

时间:2020-11-03 10:35:42

标签: batch-file jenkins jenkins-pipeline

为了删除多个匹配的文件夹,我遵循以下命令-

cd/d "C:\\Jenkins\\jobs\\Test\\htmlreports" && for /D /R  %i in (*109*)do rmdir /s /q "%~i"

如果从命令提示符处执行此命令,则它将成功。但是,如果在Jenkins管道中使用bat执行相同的操作,例如-

script {
  bat 'cd/d "C:\\Jenkins\\jobs\\Test\\htmlreports" && for /D /R  %i in (*109*)do rmdir /s /q "%~i"'
}

它失败并显示错误-

Error when executing always post condition:
hudson.AbortException: script returned exit code 255
    at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.handleExit(DurableTaskStep.java:658)
    at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.check(DurableTaskStep.java:604)
    at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.run(DurableTaskStep.java:548)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

请帮助了解此处可能存在的问题。

1 个答案:

答案 0 :(得分:0)

首先,Process exists with ExitCode 255可以帮助您解决有关255个退出代码的问题。 最后,我不知道詹金斯的工作原理,我不使用它们……但是,如果命令 bat 'cd/d "C:\\Jenkins\\jobs\\Test\\htmlreports" && for /D /R %i in (*109*)do rmdir /s /q "%~i"'是一个cmd呼叫,例如cmd /c cd/d "C:\\Jenkins\\jobs\\Test\\htmlreports" && for /D /R %i in (*109*)do rmdir /s /q "%~i",我可能知道出了什么问题: bat文件不能存储单个百分比。 cmd / c参数不知道您放在此处的代码与“&”之间的区别,即使您使用double&,也可能需要使用^。批处理脚本文件中的命令将为:

cd/d "C:\\Jenkins\\jobs\\Test\\htmlreports" ^& for /D /R  %%i in (*109*) do rmdir /s /q "%~i

,然后将代码“ do”加上“)”符号,可能还会在批处理脚本文件中引起错误,但在cmd中不会引起错误。 至少,请验证for的语法是否与您想要的语法相结合。

希望我能帮助您。