Объединение текстовых файлов рекурсивно в файлы с именем подпапок.
Здравствуйте.
Нужен батник, который бы в каждой папке и подпапке объединял лежащие в них текстовые файлы в один текстовый файл (без удаления оригиналов). В каждой директории - свой объединенный файл. При этом, чтобы имя этого файла соответствовало имени папки, в которой он сформирован. Объединения вполне достаточно через copy /b (все текстовые файлы в одной кодировке). Но с рекурсией и присвоением имени задачу не одолел. |
megaloman, в каждой папке не более 99 штук файлов с расширением txt, содержащих по 10-15 строк текста. (99 - это, конечно, просто двузначный лимит для маски, если он понадобится. Обычно, их не более 20 в папке, но может быть и много).
Кроме текстовых файлов, в папках может быть что угодно. Поэтому нужно использовать маску *.txt Учитывая, что предполагается создание тоже текстового файла, хорошо бы исключать задваивание их текстов с текстами оригиналов при последующих запусках батника - то есть, исключить при объединении текстов те файлы, имена которых совпадают с названием папок, где они хранятся. |
NuclearBox, Вариант 1. В CHCP пропишите кодировку Ваших файлов. Батник сохраните в той же кодировке, если есть в имени BoxIn символы, отличные от английских. Обошелся без Copy
Код:
@Echo Off |
NuclearBox, Вариант 2. Если всё-таки с Copy
Код:
@Echo Off |
megaloman,
по первому варианту - chcp так и оставил, в BoxIn прописал "текущую папку" %~dp0 Код новые текстовые файлы рекурсивно генерирует с именем папок. Но в самих файлах - путь текущей папки и пути к оригинальным файлам через "more", а не тексты файлов. Включая путь к новому файлу. Вероятно, какая-то ошибка в предпоследней строке. Раскрыл выполнение в окне батника - после этой строки пишет "Слишком много аргументов в командной строке". Заменил значение BoxIn на точный путь к папке - вообще не формирует новые файлы. Посмотрите еще раз, пожалуйста. megaloman, Второй вариант - отработал отлично! Его и забираю. Спасибо! |
Цитата:
Код:
@Echo Off |
megaloman, Теперь батник все верно отработал. Спасибо большое!
|
Время: 05:55. |
Время: 05:55.
© OSzone.net 2001-