Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Копирование файлов в зависимости от присутствия текста

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Rustem



Joined: 07 Oct 2009
Posts: 18
Location: Башкортостан

Post (Separately) Posted: Fri Apr 13, 2012 11:50    Post subject: Копирование файлов в зависимости от присутствия текста Reply with quote

Здравствуйте ! Мне нужно повесить на кнопку следующий алгоритм :
Есть каталог «Родитель» . Курсор стоит на этом каталоге . В нем куча подкаталогов ( в них в свою очередь тоже своё дерево подкаталогов ) .В конце каждого конечного подкаталога ( в конце дерева) могут быть файлы типа «данные.csv».
Если находим нужные фрагменты текста в файлах csv ( например слово «в архив» или «утверждено») , то нужно скопировать и заархивировать файлы с нужными нам расширениями + если в названии имени файла есть зарезервированные слова .
Например все файлы типа «подписано*.doc» , «утверждено*.prn» и др…
Скопировать надо по заданному пути в текущую дату .
Архив должен иметь название «Родитель». ( например D:\Архив\ 13042012\Родитель.rar).
Back to top
View user's profile Send private message  
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Apr 13, 2012 13:43    Post subject: Reply with quote

Rustem
За подобный коловрат не берусь, но несколько вопросов для облегчения реализатору (если вдруг такой появится) задам.
1. Почему так усложнён подход? Эти csv-файлы нельзя сделать обычным текстом и поместить их в корневые папки? Почему эти файлы должны быть именно в самом глубоком каталоге?
2. Этот последний каталог в каком из подкаталогов первого уровня должен находится? Как это определять?
3. Файлы с нужными расширениями на каких глубинах находятся? На разных или на конкретных?
4. Правильно я понимаю, что все файлы должны паковаться в один архив, а не в отдельные?
Back to top
View user's profile Send private message  
Rustem



Joined: 07 Oct 2009
Posts: 18
Location: Башкортостан

Post (Separately) Posted: Sun Apr 15, 2012 00:56    Post subject: Reply with quote

Ответ Flasher-у :
1. Архив данных формировался начиная с 90-х годов. И ничего уже там не изменишь . Там файлы в которых надо искать текст в формате csv ( и они разные : где-то есть нужный текст , где-то нет ) . Файлы csv находятся в самом глубоком каталоге.
2. Самый глубокий каталог находится максимум во 2-ом уровне относительно Родителя ( D:\Родитель\потомок_1\ , D:\Родитель\потомок_2\ , D:\Родитель\потомок_N\ )
3. Соответственно п.2 файлы с нужными расширениями находятся на одной глубине вложенности относительно каталога "Родитель".
4. Все файлы должны паковаться в один архив . Если есть совпадающие имена файлов , то можно добавить к имени файла добавляемого файла _2, _3 , _4 и т.д.
Back to top
View user's profile Send private message  
Mellomann



Joined: 07 Sep 2009
Posts: 709

Post (Separately) Posted: Sun Apr 15, 2012 01:41    Post subject: Reply with quote

Rustem
Если есть возможность - лучше вынести нужные ключевые слова типа "подписано, утверждено..." в конец имени файла (ну, или первые две-три буквы, чтобы не захламлять, например, нечто вроде "347856_пп_утв.csv"). Если бы не нужно было проводить поиск в содержимом, а достаточно только по именам - было бы намного проще. Тем более, как я вижу, если допускается добавление некоторого количества знаков в конец - это будет рациональным решением.
О том, как это можно дописать, думаю, слова "поиск по содержимому" и "групповое переименование" с чтением справки по ним прояснят ситуацию с дописыванием нужных слов в конце.

Если же эти "дописи" уже есть в именах - тогда задача моментально упрощается:
• заходим в нужного "потомка_№***",
• жмакаем Ctrl+B (плоский вид),
• далее в выделение по Num-Plus задаём какие файлы нам нужны (масками вида *_утв*.*, *_пп*.*, главное, чтобы эти приписки в конце были уникальны и не пересекались с названиями документов)
• "упаковать...", дальше - как обычно, с упаковкой ничего особенного.
При этом в конечном архиве не будет совпадающих путей, и, следовательно, необходимость дописывать числа (типа "_2", "_3" и т.д.) просто отпадает.
Просто и гениально.
Back to top
View user's profile Send private message  
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun Apr 15, 2012 05:07    Post subject: Reply with quote

2Rustem
2. СSV-файлы могут на первом уровне вложенности находиться? Или они только на втором?
Родитель - это выделенная папка или рабочая? Если выделенная, то смотреть нужно последний каталог каждого из подкаталогов и брать файлы из него, а не всех сразу, что в родителе, учитывая данные всех csv родителя в сумме?
Back to top
View user's profile Send private message  
Rustem



Joined: 07 Oct 2009
Posts: 18
Location: Башкортостан

Post (Separately) Posted: Sun Apr 15, 2012 11:19    Post subject: Reply with quote

Flasher-у:
2. Файлы csv могут и на первом уровне вложенности находится , но проверка на наличие текста в csv-файле нужна только для второго уровня и по результату поиска в файле csv брать файлы для копирования и архивации только из каталогов второго уровня .

Родитель - это папка на котором стоит курсор. Она ( эта папка ) не выделена ( папка на активной панели видимо получается) .

Mellomann-у :
Нужно проводить поиск именно в СОДЕРЖИМОМ файла csv , т.к. он называется стандартно во всех подкаталогах: "данные.csv" .
Так что никаких "дописей" в именах увы нет .
И да, кстати, задача то стоит в том, чтобы получился ОДИН архив под именем "Родитель.rar" , а не куча архивов под именем потомок_1.rar , . . . , потомок_N.rar .
Back to top
View user's profile Send private message  
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun Apr 15, 2012 12:16    Post subject: Reply with quote

Rustem wrote:
Самый глубокий каталог находится максимум во 2-ом уровне относительно Родителя
А как же?:
Rustem wrote:
В нем куча подкаталогов ( в них в свою очередь тоже своё дерево подкаталогов )

Rustem wrote:
в файле csv брать файлы для копирования и архивации только из каталогов второго уровня .
>>
Flasher wrote:
смотреть нужно последний каталог каждого из подкаталогов и брать файлы из него, а не всех сразу, что в родителе, учитывая данные всех csv родителя в сумме?
т.е. csv+csv+.. = exts всех подкаталогов родителя или csv1 = exts одного подкаталога, csv2 = exts другого подкаталога и т.д.?
Back to top
View user's profile Send private message  
Rustem



Joined: 07 Oct 2009
Posts: 18
Location: Башкортостан

Post (Separately) Posted: Sun Apr 15, 2012 19:48    Post subject: Reply with quote

Flasher-у :
На счет "В нем куча подкаталогов ( в них в свою очередь тоже своё дерево подкаталогов ) " - все правильно , только там нет нужных нам файла csv , и файлов которые надо скопировать и заархивировать . Там вспомогательная инфа, её можно не учитывать, т.к. нужных файлов для копирования там нет. Так что работаем только с каталогом второго уровня.
Смотреть нужно КАЖДЫЙ каталог ВТОРОГО уровня и брать файлы из него , если там встречается искомый текст в csv файле .
Back to top
View user's profile Send private message  
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group