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 -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Mago



Joined: 07 Mar 2022
Posts: 1

Post (Separately) Posted: Mon Mar 07, 2022 11:46    Post subject: Копирование папок, содержащих найденные файлы Reply with quote

Доброго времени суток. Не могу разобраться, я ищу файлы с определенным текстом, находит TXT, но мне нужно сохранить не сам файл тхт , а папку в которой он находится , а точнее папки так как файлов сотни . Как можно это сделать массово копировать все папки в которых найден искомый файл с текстом ?
Back to top
View user's profile Send private message AIM Address
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Tue Mar 08, 2022 21:13    Post subject: Reply with quote

Ой, тут столько способов...
Например, после окончания поиска
1. Нажать "Feed to listbox";
2. Выделить что нужно или вообще всё командой cm_SelectAll;
3. Поместить выделение в буфер командой cm_CopyFullNamesToClip или родственной;
4. Ну и, собственно, уже в текстовом редакторе вставить из буфера.

Если такие действия приходится проделывать часто, лучше один раз написать скрипт, и потом тупо нажимать кнопку.
Обращаю внимание, что выше изложен не единственный и, возможно, не самый быстрый путь...
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Wed Mar 09, 2022 09:38    Post subject: Reply with quote

Вахмурка
Вообще говоря, не так уж тут много годных способов, если внимательно вчитаться в запрос. А готового скрипта, позволяющего сделать это с минимальными усилиями в один проход, ИМХО, на данный момент пока нет. Если же использовать функционал TC, отчётливо видны три этапа операции.
Этап 1. Это легко. По содержимому файлов получить в результатах поиска список путей всех найденных файлов с этим содержимым. Далее выделить найденное и применить cm_CopyFullNamesToClip, всё правильно. (Можно сначала превратить найденное в набор колонок, где есть столбец с путём без имени файла типа [=tc.Путь], а потом скопировать по cm_CopyFileDetailsToClip и обработать в редакторе эту часть информации, суть та же.)
Этап 2 никакого отношения к TC не имеет. В неком внешнем текстовом редакторе предстоит вставить скопированное из буфера и превратить список путей с файлами в список папок без файлов (т.е. отсечь последние части путей). С какими трудозатратами это получится, зависит от возможностей редактора (в т.ч. поддержки регулярных выражений), объёма найденного и квалификации пользователя. Так или иначе на выходе должен появиться список папок с путями (если в одной папке есть несколько найденных файлов, то этот список будет короче исходного, пути-дубли надо убрать).
Этап 3. Снова возвращаемся в TC. Сохранённый файл-список проще всего указать параметром добавленной в TC 10 команды LOADLIST. После её вызова (кнопкой, клавишами и пр.) имеем в активной файловой панели как бы результаты поиска с содержимым этого списка, т.е. перечнем папок. Найденное выделяется и копируется обычным образом на другую файловую панель куда угодно.
Это, так сказать, базовая схема, имеющая при этом отношение к подфоруму "Общие вопросы". Всё прочее должно обсуждаться в "Автоматизации", но я там подходящих альтернатив не обнаружил.

Mago
Заголовок "копирование папок" не соответствует правилам форума, ибо не раскрывает суть запроса. Переименовано.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2563

Post (Separately) Posted: Wed Mar 09, 2022 14:24    Post subject: Reply with quote

Mago wrote:
копировать все папки в которых найден искомый файл

Если допускается копировать не только родительские папки, но и папки более высокого уровня, то можно воспользоваться плагином CopyTree.

Если нужны только родительские папки, то можно групповым переименованием (Ctrl+M) перенести файлы (в результатах поиска) с их родительскими папками во вспомогательные папки с уникальным именем (например, Абракадабра) с помощью маски для имени файла Абракадабра\[P]\[N], затем поиском найти эти папки и скопировать по F5 в требуемое место. Останется сделать откат переименований в инструменте группового переименования и удалить вспомогательные папки Абракадабра. Но при этом может измениться на текущую дата папок в исходных данных (для NTFS). Поэтому перед переименованием лучше воспользоваться или копией всех данных, или плагином CopyTree для промежуточного копирования найденных файлов (с папками) в отдельный каталог.

P.S.
Похоже, что решал не ту задачку, что все остальные: полагал, что в папках надо копировать не всё содержимое, а только найденные "файлы с определённым текстом".

Для правильной задачи, как вариант, список родительских папок с путями можно также получить в ИГП - инструменте группового переименования (без выполнения реального переименования!).
Примерно так:
1) Выделить в панели с результатами поиска найденные файлы
2) Запустить ИГП (Ctrl+M)
3) Поле Маска для: имени файла [=tc.Путь]
4)                           …расширения очистить
5) Найти: .
6) Заменить на: :
7) 1x включить
8) Кнопка внешнего редактора (F10), в контекстном меню выбрать "Редактировать имена..."
9) В редакторе сохранить список папок
10) Выйти из редактора, отказаться от загрузки изменённых имён
11) Выйти из ИГП
Пункты 2-7 можно заменить вызовом команды multirename имя_шаблона с сохранёнными в указанном шаблоне настройками ИГП.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы 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