![]() |
[решено] Разделить текстовые файлы по именам файлов
Я поискал в других темах, но не могу сообразить как их заставить работать так, как мне надо.
Хотелось бы найти способ разделения одного файла на несколько используя именно bat/cmd. Я использовал код "соединителя" из этой темы, но код разделителя не работает до конца, плюс разбивает некоторые линии на новые строки в произвольных местах, чего мне совсем не надо. Смысл в том, что файлы соединяются в один, и начало каждого следующего файла помечено как [название_файла.txt],после чего идёт сам текст файла. Мне теперь надо этот файл разделить обратно, что бы [название_файла.txt] становилось именем файла, и содержало весь текст который идёт до следующего [название_другого_файла.txt]. Например. Код:
[Название001.txt] |
Brety, возьмите несколько файлов, при соединении/разъединении которых гарантированно происходит описанное Вами, и упакуйте их в архив, каковой прикрепите к сообщению, либо выложите на обменник.
|
Вложений: 1
Ну вот например. Из 13 соединённых файлов получается 11 разъединённых. Собственно, даже если соединить 2 файла, а потом разъединить, то второй файл будет оборван на каком-то моменте. Плюс разбивка на новые строки в произвольных местах.
|
Brety, ну, начнём с того, что у Ваших файлов концы строк в формате Unix — 0x0A, оно же Lf или LineFeed. Используя вывод в пакетных файлах, Вы уже в объединённом файле получаете концы строк не в виде Lf, а, как и принято в мире DOS/Windows — в виде пар CrLf. Не знаю, насколько это критично для Вас, но оригинальные файлы Вы таким способом уже не получите.
Далее. «разбивка на новые строки в произвольных местах» — совсем не в произвольных, а строго по длине в 1024 символа. Смотреть-разбираться, где там что не так в пакетных файлах — не интересно и не продуктивно. Если найдутся заинтересованные в пакетных файлах коллеги — подскажут. |
Цитата:
|
Цитата:
|
Brety, «в любой ситуации» — такого не бывает в принципе, «на любой винде» — это как раз WSH.
Цитата:
Цитата:
Выше я Вам уже указал, что фокус с пакетными файлами тупо не прокатит, поскольку в оригинале совсем другие концы строк, которые теряются уже при слиянии. |
Цитата:
Код:
@echo off Цитата:
|
Цитата:
|
Brety,
Вот батник со встроенным js-скриптом, который умеет консолидировать файлы в указанной папке и разделять консолидированный файл
Код:
@set @E=1; /* Если запустить консолидацию файлов а затем без изменения разбиение на файлы, длина файлов будет равна исходной. Перед консолидацией делается страховочный архив посредством архиватора 7z. При консолидации исходные файлы удаляются. Пропишите свои пути. Если пропИшите: Set "FileIn=*.txt" Set "FileOut=Rezult.txt" то батник должен располагаться в папке с файлами. Цитата:
|
megaloman
Пробовал и так и сяк, похоже что работает как надо. Спасибо. |
Время: 02:23. |
Время: 02:23.
© OSzone.net 2001-