Вы можете использовать опцию skip
в цикле for /f
, чтобы перейти непосредственно к правой строке, когда слово найдено, мы используем команду goto
, чтобы разорвать цикл:
@echo off
for %%a in (*.txt) do call:get6 "%%a"
echo done!!
exit/b
:get6
for /f "skip=3 tokens=6" %%b in ('type "%~1"') do (
set "$6=%%b"
goto:next
)
exit/b
:next
echo %$6%
РЕДАКТИРОВАТЬ:
После комментария @stephan здесь тот же код, используя оригинальный метод findstr /n
:
@echo off
for %%a in (*.txt) do call:get6 "%%a"
echo done!!
exit/b
:get6
for /f "tokens=6" %%b in ('type "%~1" ^| findstr /n $ ^| find "4:"') do (
set "$6=%%b"
goto:next
)
exit/b
:next
echo %$6%