Как разбить текстовый файл построчно

Автор: Igor Kirsanov

Чтобы разбить текстовый файл построчно не обязательно использовать специализированные программы или языки программирования, достаточно написать обычный пакетный файл, или просто слегка изменить его под свою задачу.


setlocal enabledelayedexpansion
set q=0
set N=4
for /F "delims=   " %%i in (dly_razbivaniya.txt) do (
set /a q+=1
if !q! GTR !N! set /a N+=4
@echo %%i >> nazvanie_poluchennogo_faila!N!.txt
)

Разбивать текстовый файл может потребоваться для программ которые не могут работать с большими объемами информации, например программа чтения книги для мобильного телефона, или огромный файл логов сервера, который просто не влезает в обрабатывающую программу или скрипт.

Пояснения к пакетному файлу:
setlocal enabledelayedexpansion

В обычном случае, чтобы узнать значение переменной окружения, надо воспользоваться конструкцией %переменная%. Однако, если значение переменной меняется внутри цикла и читается там же, то для корректной работы батника, нужно использовать команду setlocal enabledelayedexpansion и вместо символа "%", использовать символ "!". Иначе, значение переменной в цикле будет всегда одним и тем же - таким, каким было до входа в цикл.

Значение N=4 указывает по сколько строк необходимо создавать файлы. Изменять это значение нужно в двух местах, вместо 4 ставите нужную Вам цифру.

dly_razbivaniya.txt - это название файла который нужно разбить, вписываете сюда свое

nazvanie_poluchennogo_faila!N!.txt - это название выходного файла, т.е. первый полученный файл будет называться nazvanie_poluchennogo_faila4.txt, подставляется значение N. Чтобы получить другое название или расширение заменяете соответственно nazvanie_poluchennogo_faila и .txt на нужные.

Пример файла находится в приложении к данной статье