我在构建结束时得到一个日志文件,表明我构建的项目的状态,我想使用此日志文件在失败的构建不等于0时给出退出代码1。
日志文件:
========== Build: 19 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
如何创建批处理文件,查看是否有1个失败(或更多),并设置 %ERRORLEVEL%= 1。
答案 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
)