|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Разбить txt на части по разделителю |
|
CMD/BAT - [решено] Разбить txt на части по разделителю
|
Новый участник Сообщения: 17 |
Профиль | Отправить PM | Цитировать
Здравствуйте. Помогите написать батник для разбиения одного txt на части по разделителю. Батник должен быть в папке с исходным файлом. Содержание исходника:
Год: 2018 Жанр: Исторические приключения, Боевик Формат: RTF,FB2 ======================================================================== Год: 2017 Жанр: Боевая фантастика, Зарубежная фантастика, Научная фантастика Формат: RTF,FB2 ======================================================================== Год: 2017- Жанр: Боевая фантастика, Зарубежная фантастика, Научная фантастика Формат: RTF,FB2 В обработанные файлы разделитель включаться не должен: Год: 2017- Жанр: Боевая фантастика, Зарубежная фантастика, Научная фантастика Формат: RTF,FB2 |
|
Отправлено: 10:14, 16-10-2018 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать измените файл так:
Скрытый текст
======================================================================== Год: 2018 Жанр: Исторические приключения, Боевик Формат: RTF,FB2 ======================================================================== Год: 2017 Жанр: Боевая фантастика, Зарубежная фантастика, Научная фантастика Формат: RTF,FB2 ======================================================================== Год: 2017- Жанр: Боевая фантастика, Зарубежная фантастика, Научная фантастика Формат: RTF,FB2 и тогда это будет работать как надо (если в строках не будет разных спецсимволов, иначе лучше брать не bat) |
Отправлено: 14:11, 16-10-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Помогите доработать данный выше скрипт, если в файлах существуют пустые строки. Имеющийся скрипт пустые строки удаляет, а нужно, чтобы они остались. Спасибо.
======================================================================== Год: 2018 Жанр: Исторические приключения, Боевик Формат: RTF,FB2 ======================================================================== Год: 2018 Жанр: Исторические приключения, Боевик Формат: RTF,FB2 ======================================================================== |
Отправлено: 21:29, 30-07-2022 | #3 |
Crazy Сообщения: 1196
|
Профиль | Отправить PM | Цитировать Цитата Viktor99:
$file = 'test.txt' $enc = 'utf8' if ($pscore = $psversiontable.psversion.major -gt 5){ if ($enc -eq 'utf8'){$enc = 'utf-8'} } (gc $file -enc $enc -raw) -split "==+"|%{$i=0}{ $i++;$_.trim()|out-file ("$i" + '.txt') -enc $enc } n+1 где n - количество разделителей. Разделитель можно изменить. В данном скрипте, это регулярное выражение "==+", то бишь два и более символа "=", расположенных подряд, будут использоваться в качестве единого разделителя. Кодировка файла тоже изменяема, в данном случае, это: |
|
------- Последний раз редактировалось YuS_2, 31-07-2022 в 08:49. Отправлено: 08:38, 31-07-2022 | #4 |
fascinating rhythm Сообщения: 6607
|
Профиль | Отправить PM | Цитировать А можно не ловить разделитель, а просто выбрать то, что нужно и отформатировать как нравится (Powershell):
|
|
------- Отправлено: 11:22, 31-07-2022 | #5 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Первая строка: $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\' |
Последний раз редактировалось Viktor99, 31-07-2022 в 12:59. Отправлено: 11:49, 31-07-2022 | #6 |
Crazy Сообщения: 1196
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
Данные можно обрабатывать так, как хочется... вопрос только в конечном результате, т.е. надо определиться с задачей... Цитата Viktor99:
и изменить код вывода в файлы: |
||
------- Отправлено: 13:45, 31-07-2022 | #7 |
fascinating rhythm Сообщения: 6607
|
Профиль | Отправить PM | Цитировать Цитата Viktor99:
|
|
------- Отправлено: 15:13, 31-07-2022 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] разбить по строкам txt | shadowbat | Скриптовые языки администрирования Windows | 54 | 10-11-2015 16:20 | |
CMD/BAT - [решено] Разбить txt файл по строкам и файлам | Acred | Скриптовые языки администрирования Windows | 9 | 12-10-2015 18:08 | |
Прочее - Разбить архив на части | venuko | Общий по Linux | 12 | 30-06-2015 09:38 | |
HDD - Как разбить жесткий на 3 части | MaJlb4uK | Хочу все знать | 4 | 01-09-2007 20:27 | |
Как разбить mp3 на части | Qwe1 | Хочу все знать | 11 | 06-10-2006 19:03 |
|