2011-07-23 51 views
0

如果构建失败,我认为%ERRORLEVEL%将不为零,但情况并非如此。如何通过批处理脚本检查VCBUILD是失败还是成功

+0

我对VCBUILD知之甚少,但如果它没有设置ERRORLEVEL,那么你可以尝试解析输出,比如'vcbuild |找到“失败”&&设置失败= 1'。 –

+0

不幸的是,这是个好主意,它带来了一些问题。其一,我不知道如何在控制台输出上执行FIND(不确定是否有可能)。我可以通过输出到文件并在其中执行FIND来解决这个问题,但是如果构建失败,我只能访问控制台输出,它不会有'VSBuild'的输出。我可以解决这个问题,一旦VSBuild完成后,将文件中的所有内容输出到控制台,但是由于某些版本需要很长时间,所以实时控制台输出不可能(至少据我所知):( – Samaursa

+0

You可以使用'|'符号将'FIND'应用于控制台输出:'vcbuild parameters | find“whatever”'。vcbuild'可能会将失败消息输出到所谓的* standard error *设备中不同于*标准输出*,即使在控制台上也显示),在这种情况下,你需要修改命令行:'vcbuild parameters 2>&1 | find“...”'同样,我会更确定的是,如果我对'vcbuild'实用程序有更多的了解 –

回答

1

在开源BlueCove项目上的人有a batch file that checks the error level of vcbuild。它基本上是这样的:

  1. 制作舒尔vcvars32.bat被称为
  2. vcbuild /u /rebuild myproject.sln "%CONFIGURATION%|Win32"
  3. @if errorlevel 1 goto errormark

如果它不能帮助你,请更新的批处理文件,让你你的问题麻烦。也许你的运气不好,一个名为vcbuild.bat的批处理文件在真正的vcbuild.exe之前被调用?

+0

我已经看到了很多在其构建中使用errorLevel的仓库,当我第一次遇到错误时,这就是我所做的(查看其他人是如何处理它的)。我将很快发布批处理文件。我已经解决了最初的问题,但以一种非常复杂的方式。我会检查在这一切中看到'vcvars32.bat'的角色。感谢您的链接! (1) – Samaursa

相关问题