首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C++项目中生成事件

在C++项目中生成事件
EN

Stack Overflow用户
提问于 2013-01-22 02:45:42
回答 2查看 500关注 0票数 3

我在我的C++ Visual Studio2010项目中有一个构建后事件,它使用命令xcopy,但是当这个xcopy返回错误代码(>0)时,所有构建也失败了,并且消息“构建不成功”,我如何在构建事件中关闭错误敏感性?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-22 02:50:31

您可以使用Exec任务的IgnoreExitCode

代码语言:javascript
运行
复制
<Target Name="MyAwesomePostBuildTarget" AfterTargets="Build">
  <Exec IgnoreExitCode="true" Command="xcopy etc. etc." />
</Target>
票数 6
EN

Stack Overflow用户

发布于 2013-01-22 03:16:34

您可以通过将|| exit /b 0附加到命令的末尾来覆盖(几乎)任何批处理命令的失败结果。示例:

del somefile.txt || exit /b 0

在这种情况下,批处理文件的工作方式有点像C。您可以执行&&,以便在前一个命令成功时有条件地运行命令,并||在前一个命令失败时运行命令。

exit /b 0告诉CMD处理器退出脚本并将errorlevel设置为零(0)。永远不要忘记包含/b开关!如果没有它,CMD将退出调用脚本以及当前脚本,而当前脚本很少出现所需的行为。

我在Visual Studio IDE中使用了这个技巧,所以不需要进行低级的项目修改。它可以放在一行中,这也是IDE的便利之处。

顺便说一句,另一个有用的技巧是使命令静默:

xcopy srcfile destfile 1>nul 2>nul || exit /b 0

1是标准输出,2是标准错误。众所周知,Windows shell程序套件对于它们可能使用的输出是不一致的,所以我通常只使用两个输出或两个都不使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14445187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档