windows – 为什么从Jenkins(但在其他地方)调用时,exit / b无法
发布时间:2020-12-14 05:43:36 所属栏目:Windows 来源:网络整理
导读:我有以下问题:我的项目有一个make_all.bat文件,它执行这样的几个构建: call make_first_component.batif %ERRORLEVEL% gtr 0 ( exit /b %ERRORLEVEL% )call make_second_component.batif %ERRORLEVEL% gtr 0 ( exit /b %ERRORLEVEL% ) 该脚本中没有其他行(
我有以下问题:我的项目有一个make_all.bat文件,它执行这样的几个构建:
call make_first_component.bat if %ERRORLEVEL% gtr 0 ( exit /b %ERRORLEVEL% ) call make_second_component.bat if %ERRORLEVEL% gtr 0 ( exit /b %ERRORLEVEL% ) 该脚本中没有其他行(echo命令除外). 现在,当我通过双击或从命令行手动调用该脚本,并且make_first_component.bat执行类似exit / b 1的操作时,make_all.bat将按预期退出. 当我从jenkins作业(下面的代码)调用脚本时,即使第一个组件发生故障,make_all.bat也会继续使用第二个组件. 那么jenkins做了什么打破了%ERRORLEVEL%概念呢? PS:我已经尝试过setlocal enabledelayedexpansion然后使用!ERRORLEVEL !,但它始终为0. 注意:jenkins作业有一个“执行Windows批处理命令”步骤,如下所示: cd %WORKSPACE%srcbat echo Setting up Visual Studio environment call "%VS120COMNTOOLS%....VCvcvarsall.bat" amd64 echo Building Project call make_all.bat if %ERRORLEVEL% gtr 0 ( exit /b %ERRORLEVEL% ) (这是完整的一步) 解决方法
当覆盖ERRORLEVEL时会发生此效果.
样品 set errorlevel=0 cd ThisDoesntExist echo %errorlevel% set "errorlevel=" echo %errorlevel% 它输出
结论:设置“errorlevel =”可以恢复正常的%ERRORLEVEL%行为 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 如何生成一组用户所属的安全组列表?
- windows-7 – VMware – Windows 7来宾VM上的高CPU利用率
- 在Windows上将TagLib编译到Qt C项目中
- windows – Perl命令行解释器没有退出
- 在Windows上使用私钥导出SSL证书
- .net – 在Windows 8 DESKTOP应用程序中使用SQLite
- wpf – 可停放的Windows.浮动窗口和MainWindow菜单集成
- win10下搭建python3+scarpy虚拟环境
- 在Windows Server 2008 R2上安装Sharepoint 2007
- 2018-2019-2 20162318《网络对抗技术》Exp2 后门原理与实践
推荐文章
站长推荐
热点阅读