Вход | Регистрация
 
Информационные технологии :: Математика и алгоритмы

Собрать файл из многих

Собрать файл из многих
Я
   Chum
 
06.11.19 - 12:46
Коллеги, может, кто-то сталкивался:

Есть большой древовидный каталог, в каждой папке которого какие-то файлы (текстовые).
Вопросов два:
1. Чем можно автоматически построить дерево каталогов (желательно с содержимым) и результат поместить в файл (текстовый или графический)?
2. Чем можно собрать содержимое всех файлов из этой структуры в один, желательно в виде:
полное имя файла 1
содержимое

полное имя файла 2
содержимое

Наверняка есть какое-то простое и готовое решение?
 
 
   Fragster
 
1 - 06.11.19 - 12:47
в линуксе изи через bash и find с cat делается
   Chum
 
2 - 06.11.19 - 12:47
(1) а под виндой?
   Василий Алибабаевич
 
3 - 06.11.19 - 12:49
(2)
cmd
tree > outputfile.txt
   Василий Алибабаевич
 
4 - 06.11.19 - 12:49
+ (3) + dir
   mistеr
 
5 - 06.11.19 - 12:51
(2) Под виндой соответственно через cmd, dir и type.
   mistеr
 
6 - 06.11.19 - 12:52
(3) tree /f — с файлами.
   Chum
 
7 - 06.11.19 - 12:53
Ok. Дерево есть. Спасибо (2)(6).

теперь осталось все файлы в один слить
   Василий Алибабаевич
 
8 - 06.11.19 - 12:53
(0) "собрать содержимое всех файлов из этой структуры в один" - copy наше всьо. Если файлы текстовые.
   mistеr
 
9 - 06.11.19 - 12:58
(7) Придется немного изучить язык батников. for /r — обход файлов с подкаталогами.
   ДенисЧ
 
10 - 06.11.19 - 13:02
(2) В винде тоже можно найти "bash и find с cat"
особенно в вин10
   Chum
 
11 - 06.11.19 - 13:31
Короче говоря, подсмотрел вариант решения.

Создается батник с текстом:

------- начало файла -------
echo off

set "result=outfile.txt"

>nul subst/d ?:& subst ?: .& pushd ?:\
>"%result%" (
for /f "tokens=* delims=?:\" %%i in ('2^>nul dir/a-d/b/s *.*') do @(
if "%%i" neq "%result%" (
  echo [%%i]
  <"%%i" more| more
)
)
)
subst/d ?:& popd

exit/b 0
------- конец файла -------


В результате создает файл, где указаны полные имена файлов и их содержимое.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.