我在jenkins中使用了一些Windows批处理命令,其中每个命令都可能失败。为了使每个步骤的jenkins作业失败,这些批处理命令如下所示:
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将执行以下批处理命令。
答案 0 :(得分:6)
遗憾的是,在批处理中你不能激活bash中的-e
之类的标志,它会在任何非0的返回码上退出。但是你可以使用逻辑or
跳转到退出标签这里描述:https://stackoverflow.com/a/8965092/2003420
答案 1 :(得分:3)
将命令与批处理&&
运算符串在一起。如果左侧的命令具有非零退出代码,则它会向右跳过命令。