如何在dos批处理文件中检查调用命令的状态

时间:2013-04-05 06:33:30

标签: batch-file dos batch-processing

我有一个包含这些内容的批处理文件名xyz.bat

 @echo off
 echo  1.Cleaning all four project.
 call apacheant\bin\ant -buildfile clean-all.xml
  

当第一个呼叫结束时,它在控制台构建上写入成功或构建失败   如何在此条件的基础上验证此调用是否失败或传递我想决定下一次调用执行。

echo  1.Building all four project.
call apacheant\bin\ant -buildfile build-all.xml
@echo on

1 个答案:

答案 0 :(得分:2)

echo  1.Building all four project.
call apacheant\bin\ant -buildfile build-all.xml >logfile.txt
findstr "succeed" logfile.txt >nul
if errorlevel 1 (echo Build failed) else (echo Build Succeeded)

当然,如果需要,echo ...可以替换为'set antstatus = SUCCEED`。

不要尝试使用ERRORLEVEL来控制处理,因为MANY命令会改变ERRORLEVEL以报告自己的状态。

可能可能 ANT在终止时返回状态。您可以查看

echo %errorlevel%

ant步之后。如果它返回errorlevel,那么您不需要创建和解释日志文件。

IF ERRORLEVEL语法是

if errorlevel n Command_if_errorlevel_is_n_OR_GREATER_THAN_n