YuS_two
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору boss911 Цитата: К сожалению, так не получается, я так уже пробовал. Дело в том, что при GTR 30 вывод из FOR будет состоять из 31 строки, а мне надо СТРОГО 30 и НЕ больше, вот почему в моем в коде GTR 29. FOR выводит 30-ю строку, GTR 29 это фиксирует и ставит на паузу. Именно так у меня GTR работает. И я повторюсь, если выхлоп из FOR состоит только из 30 строк или менее, то паузу после 30-й ставить не надо. | А, ну да, если надо строго n строк, то в счетчике необходимо после вывода строки делать проверку на число n-1, ведь там стоит проверка на "больше", а 30 строк уже выведено и если число будет 30, то будет вывод и 31 строки с последующей проверкой по условию... Так, кажется дошло, что требуется: Необходимо делать паузу после каждых 30 строк, но если ровно 30 строк в тексте последние, то дополнительную паузу не выводить - так? Если да, то: Код: FOR /F "Tokens=1* Delims==" %%A IN ('SET Line') DO CALL:MORE "%%B" echo. echo "END lines" timeout 3&&exit :MORE IF %CNT% GTR 29 (SET CNT=0 & ECHO. & PAUSE & CLS) SET /A CNT+=1 @ECHO.%~1 GOTO:EOF | Либо: Код: setlocal enabledelayedexpansion FOR /F "Tokens=1* Delims==" %%A IN ('SET Line') DO ( IF !CNT! GTR 29 (SET CNT=0 & ECHO. & PAUSE & CLS) @ECHO.%%B SET /A CNT+=1 ) endlocal echo. echo "END lines" timeout 3 exit |
| Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 03:52 26-06-2016 | Исправлено: YuS_two, 06:03 26-06-2016 |
|