使用批处理文件根据日志文件提供退出代码

时间:2016-09-21 13:02:53

标签: batch-file cmd

我在构建结束时得到一个日志文件,表明我构建的项目的状态,我想使用此日志文件在失败的构建不等于0时给出退出代码1。

日志文件:

========== Build: 19 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

如何创建批处理文件,查看是否有1个失败(或更多),并设置 %ERRORLEVEL%= 1。

2 个答案:

答案 0 :(得分:2)

未经测试:

set "log=log.txt"

for /f "tokens=5 delims= " %%# in ('find "========== Build:" "%log%" ') do set /a fails=%%#

if %fails% neq 0 exit /b 1

答案 1 :(得分:2)

如果您想要做的就是在成功时将ERRORLEVEL设置为0,如果至少有一次失败则设置为1,那么只需要一个简单的FINDSTR。

data want ;
  if 0 then set sashelp.class;
  do age=10 to 15;
   do sex='M','F';
    output;
   end;
  end;
  stop;
run;

如果找到字符串,ERRORLEVEL将为0,否则为1。

您可以使用findstr /rc:"^========== Build: .* succeeded, 0 failed," "log.txt" >nul &&运营商

有条件地根据成功或失败采取行动
||

因此,如果您只想在出现故障时退出ERRORLEVEL为1,则可以使用:

findstr /rc:"^========== Build: .* succeeded, 0 failed," "log.txt" >nul && (
  rem Success actions go here
) || (
  rem Failure actions go here
)