Снова немного "поколдовав", "соригинальничал в квадрате":
Код:
![Выделить весь код](images/misc/selectcode.png)
@echo off
set "log=meibillaccfwdownload.log"
set "codes=3, 1006, 4003"
setlocal
if not exist "%log%" (
echo "%log%" is not found.& pause>nul& endlocal& exit/b 1
) else (
for %%i in (%codes%) do call set x=%%x%% /c:"Return Code: %%i$"& set %%i=true
>nul cmd/v/c findstr/ir!x! "%log%"|| (endlocal& exit/b 2)
for /f %%i in ('^<"%log%" find/c /v ""') do @<"%log%">.tmp (
for /l %%j in (1 1 %%i) do @set y=& set/p y=& if defined y (
(
for /f "tokens=8,9" %%k in ('cmd/v/c echo.!y!') do @if defined %%l (
if "%%k" equ "Code:" (
cmd/v/c echo !y: Code: = C: !
) else cmd/v/c echo !y!
) else cmd/v/c echo !y!
)|| cmd/v/c echo.!y!
) else echo.
)
)
type .tmp>"%log%"& del .tmp
endlocal
:work
echo :work& echo The label was achieved.& pause>nul
.
Если ориентироваться только на прикреплённый LOG-файл, то код можно бы было сократить вдвое, но я почему-то подозреваю, что содержимое приведённого файла может не полностью соответсвовать реальному содержимому, и поэтому учёл все возможные ситуации, кроме наличия другой кодировки и некоторых маловероятных случаев. Кстати, если бы не условие "если не найдено, то выходить, совсем ничего не делая", можно было бы даже не генерировать шаблоны поиска как таковые и не применять команду "
FINDSTR", и в случае отсутстствия нужных кодов возврата файл бы просто переписывался без изменений, после чего осуществлялся бы выход.