Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

iglezz

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Одно большое "НО":
Цикл for /f втихаря пропускает пустые строки, но "skip=N" корректно отсчитывает строки.
Поэтому :GetLines выведет начиная с нужного нам номера только непустые строки.

Код:
@echo off
pushd %~dp0
SETLOCAL ENABLEDELAYEDEXPANSION
 
set "file=155.txt"
set "searchstr=#1"
 
 
for /f "delims=: tokens=1" %%a in ('findstr /i /n "%searchstr%" "%file%"') do (
    call :GetLines %%a 1 0
)
pause  
exit /b
 
:GetLines
rem параметры GetLines: <номер_строки> <число_строк_до_искомой> <число_строк_после_искомой>
set /a linesBefore=%2+1
set /a linesAfter=%3
set /a linesToSkip=%1-%linesBefore%
set /a count=%linesBefore%+%linesAfter%
 
for /f "skip=%linesToSkip%" %%s in (%file%) do (
    echo %%s
    set /a count=!count!-1
    if !count! equ 0 (
        rem здесь можно добавить команды до выхода
        exit /b
    )
)
exit /b
 

Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 14:58 14-11-2019 | Исправлено: iglezz, 15:07 14-11-2019
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru