Разбить txt на части по разделителю
Здравствуйте. Помогите написать батник для разбиения одного txt на части по разделителю. Батник должен быть в папке с исходным файлом. Содержание исходника:
Год: 2018 Жанр: Исторические приключения, Боевик Формат: RTF,FB2 ======================================================================== Год: 2017 Жанр: Боевая фантастика, Зарубежная фантастика, Научная фантастика Формат: RTF,FB2 ======================================================================== Год: 2017- Жанр: Боевая фантастика, Зарубежная фантастика, Научная фантастика Формат: RTF,FB2 В обработанные файлы разделитель включаться не должен: Год: 2017- Жанр: Боевая фантастика, Зарубежная фантастика, Научная фантастика Формат: RTF,FB2 |
измените файл так:
Скрытый текст
Код:
======================================================================== и тогда это будет работать как надо (если в строках не будет разных спецсимволов, иначе лучше брать не bat) Код:
@echo off |
Помогите доработать данный выше скрипт, если в файлах существуют пустые строки. Имеющийся скрипт пустые строки удаляет, а нужно, чтобы они остались. Спасибо.
======================================================================== Год: 2018 Жанр: Исторические приключения, Боевик Формат: RTF,FB2 ======================================================================== Год: 2018 Жанр: Исторические приключения, Боевик Формат: RTF,FB2 ======================================================================== |
Цитата:
Код:
$file = 'test.txt' n+1 где n - количество разделителей. Разделитель можно изменить. В данном скрипте, это регулярное выражение "==+", то бишь два и более символа "=", расположенных подряд, будут использоваться в качестве единого разделителя. Кодировка файла тоже изменяема, в данном случае, это: Код:
$enc = 'utf8' |
А можно не ловить разделитель, а просто выбрать то, что нужно и отформатировать как нравится (Powershell):
Код:
$txt = gc "C:\temp\text.txt" |
Первая строка: $file = 'C:\Users\Administrator\Desktop\workingg\messages.txt' Скрипт работает отлично, спасибо. Но получается немного неудобно, что входящие данные находятся в "C:\Users\Administrator\Desktop\workingg\", а разделенные файлы появляются в папке со скриптом. Как можно сделать, чтобы разделенные ложились рядом с исходным файлом, а не рядом со скриптом? вопрос снят. Прочитал справку powershell и сам разобрался. Нужно перед (gc $file -enc $enc -raw) -split "==+"|%{$i=0}{ $i++;$_.trim()|out-file ("$i" + '.txt') -enc $enc } вставить указание пути: Set-Location -Path 'C:\Users\Administrator\Desktop\workingg\' |
Цитата:
Данные можно обрабатывать так, как хочется... вопрос только в конечном результате, т.е. надо определиться с задачей... Цитата:
Код:
$outpath = 'C:\Users\Administrator\Desktop\workingg\' Код:
... |
Цитата:
|
Время: 21:14. |
Время: 21:14.
© OSzone.net 2001-