set checker=0
for %%a in (%namelist%) do (
:startLoop
findstr "completed" %%a_Logs.txt
IF ERRORLEVEL 1 (
IF %checker%==120 (
set checker=0
goto endLoop
)
set /a checker=%checker%+1
@ping 127.0.0.1 -n 1 -w 1000 > nul
findstr "ERROR" %%a_Logs.txt
IF ERRORLEVEL 1 (
echo Waiting 1 second before rechecking (Max 2 mins)
echo time elapsed %checker% seconds
echo.
goto startLoop
)
findstr "ERROR" %%a_Logs.txt
IF NOT ERRORLEVEL 1 (
echo ERROR: %%a Error found
goto endLoop
)
)
findstr "completed" %%a_Logs.txt
IF NOT ERRORLEVEL 1 (
echo %%a completed
)
:endLoop
)
上面这段代码是为了做到以下几点:
- 解析变量名列表(内容以空格分隔)
- 检查 %%a_Logs.txt 文件中是否存在“已完成”
- 如果存在,则迭代,如果不存在,则检查同一文件中的字符串“ERROR”
- 如果存在 ERROR,则输出 ERROR MSG 并结束迭代
- 如果未找到 ERROR,则在结束迭代之前继续重新检查接下来的 120 秒
我不断收到以下输出
FINDSTR:无法打开 %a_Logs.txt