我在jenkins中使用了一些Windows批处理命令,其中每个命令都可能失败。为了使詹金斯工作在每个步骤上失败,这些批处理命令如下所示:
net use m: \\%IP_ADDRESS%\Whatever %PASSWORD% /user:%USERNAME% if ERRORLEVEL 1 exit 1 mkdir m:\Install if ERRORLEVEL 1 exit 1 copy /b %LOCAL_TEMP%\%INSTALLER_EXE% m:\Install\%INSTALLER_EXE% if ERRORLEVEL 1 exit 1 net use m: /D if ERRORLEVEL 1 exit 1
换句话说:我似乎要检查每个批处理命令是否失败,然后在必要时以错误代码1退出。有没有更有意义/更方便/更好的方法来实现这一目标?
如果我不检查每个步骤并退出,jenkins将执行以下批处理命令。
可悲的是,您不能激活-ein bash之类的标志,该标志会在任何不为0的返回码上退出。但是,您可以使用逻辑or跳转到退出标签,如下所示:
-e
or
例如,创建此.cmd文件:
@echo off echo Starting very complicated batch file... ping -invalid-arg || goto :error echo OH noes, this shouldn't have succeeded. goto :EOF :error echo Failed with error #%errorlevel%. exit /b %errorlevel%