View previous topic :: View next topic |
Author |
Message |
Velvet211
Joined: 27 Sep 2009 Posts: 11
|
(Separately) Posted: Wed Aug 27, 2014 15:50 Post subject: Поиск дубликатов по именам файлов разного типа |
|
|
Добрый день! Подскажите..
Ситуация такая: каждый раз при копировании на винт фотографий с флешки, помещаю raw файлы в отдельную папку. Просматриваю jpg через ctrl+q в соседнем окне, выделяю ненужные фотки и потом их удаляю. Соответственно, какие-то остаются (достаточно много остается, но примерно половина удаляется). Далее, чтобы не забивать жесткий диск, удаляю те же равы просто глазами сравнивая в разных панелях raw и jpg. Так вот - задолбался)) Есть ли какая-то возможность удалять файлы синхронно? Или, скажем, сравнивать каталоги по именам файлов (но без типов) и отмечать только отсутствующие в одном из окон?
Заранее благодарен! |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Aug 27, 2014 16:23 Post subject: |
|
|
Отчего с подфорумом мимо кассы?
Поиск в руки - 1, 2. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2599
|
(Separately) Posted: Wed Aug 27, 2014 16:58 Post subject: |
|
|
Velvet211
Если raw-файлы помещены в подпапку по отношению к папке с jpg-файлами (в моём примере подпапка называется SubDirRaw), то можно в папке с jpg-файлами нажать Ctrl+В, с помощью NUM + ввести маску для выделения файлов Code: | *.jpg>SubDirRaw\*.raw | и затем инвертировать выделение клавишей NUM *. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10284 Location: Россия, Саратов
|
(Separately) Posted: Wed Aug 27, 2014 17:03 Post subject: |
|
|
Velvet211
Всё это отвечалось на форуме и/или есть в справке. И про назначение подфорума "Секреты и советы" говорилось множество раз.
Замечание за нарушение правил форума. Тема перенесена. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия.
Last edited by Avada on Wed Aug 27, 2014 18:34; edited 1 time in total |
|
Back to top |
|
|
Velvet211
Joined: 27 Sep 2009 Posts: 11
|
(Separately) Posted: Wed Aug 27, 2014 17:21 Post subject: |
|
|
Вот ведь гики. Я искал. Не нашел
Спасибо за ответ |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2599
|
(Separately) Posted: Wed Aug 27, 2014 17:46 Post subject: |
|
|
Можно и кнопку создать:
Code: | TOTALCMD#BAR#DATA
cm_DirBranch,em_SelRaw,cm_ExchangeSelection
WCMICONS.DLL,39
Выделить raw-файлы без одноимённых jpg-файлов
-1
| , для чего потребуется дополнительно завести пользовательскую команду em_SelRaw такого вида
Code: | SELECTFILES *.jpg>SubDirRaw\*.raw |
|
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Wed Aug 27, 2014 20:02 Post subject: |
|
|
Есть набор файлов типа:
Code: | 1.abc
1.def
2.abc
2.def
3.abc
3.def
... | Иногда один из файлов пропадает, то есть получается (если пропал 1.def) Code: | 1.abc
2.abc
2.def
... | Как найти одинокий, лишенный пары, файл *.abc? Раньше я делал так: Code: | SELECTFILES *.def>*.abc | В результате выделяются все файлы, кроме 1.abc. Но это неудобно, и я нажимал "звездочку". Все - цель достигнута: выделен 1.abc.
Вот этот пост sa натолкнул меня на мысль использовать "сцепку команд", то есть Code: | SELECTFILES *.def>*.abc;cm_ExchangeSelFiles | Но тогда в результате выделяются все файлы *.def. Мало того, что оно мне не надо, но получается, что результат выполнения двух команд раздельно отличается от выполнения их в сцепке. Почему? Как решить задачу? _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2599
|
(Separately) Posted: Wed Aug 27, 2014 20:42 Post subject: |
|
|
Вахмурка
Команду с параметрами (SELECTFILES *.def>*.abc) надо "упрятать" в пользовательскую и уже её использовать в сцепке команд.
P.S.
Разделителем в сцепке должна быть запятая. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Wed Aug 27, 2014 21:25 Post subject: |
|
|
Спасибо, заработало. Решение, кстати, нетривиальное. Не напишешь (в ТСКВ, например) статейку по сцепке команд? Я уже тут задал ряд вопросов, но народ реагировал кисло.
Вот еще вопрос. Известно, что файлы hypertext markup language могут иметь разные расширения: htm, html, shtml (может, еще какие есть, но пока остановлюсь). Так вот, в команде SELECTFILES как таковой вот такая маскаработает как часы. А если добавить ">", то увы - отмечаются все *.jpg (изначально было *.html и одноименные *.jpg). Где описаны ограничения на маску после ">"? (до ">" все пучком: команда Code: | SELECTFILES *.*htm*>*.jpg | работает правильно) _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2599
|
(Separately) Posted: Wed Aug 27, 2014 22:04 Post subject: |
|
|
Вахмурка
Попробовал команду
SELECTFILES *.*htm*>*.jpg
У меня выделяет, как и положено, только одноимённые с .*htm* файлы .jpg, а не все, как описал ты. Или я не так понял вопрос…
Вот ещё из справки:
Quote: | New: You can now select related files. For example, you would want to select all RAW image files (.cr2), but only if there is a jpg file in the same directory. This can be done with the following selection string:
*.jpg>*.cr2
This also supports more complex naming schemes. For example, if the jpg file is named IMG_1057.JPG and the raw file CRW_1057.CR2, the selection string would have to be:
*.jpg>crw*.cr2 |
|
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Wed Aug 27, 2014 22:53 Post subject: |
|
|
Я поставлю вопрос по-другому. Есть файлы: Code: | 1.htm
1.jpg
2.shtml
2.jpg
3.html
3.jpg
... | То есть много пар, в каждой из которых одноименные *htm* файл (где *htm* - маска), и jpg (а в идеале - jpg или jpeg) файл. Далее, один из файлов исчезает (неважно, как и почему). Задача - найти (выделить) "одинокий" файл ("партнер" пропавшего). Задачу надо решить одной кнопкой для двух случаев: 1) пропал *htm*: 2) пропал jpg.
Это решаемо? _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2599
|
(Separately) Posted: Thu Aug 28, 2014 00:34 Post subject: |
|
|
Для первого случая использовать команду Code: | SELECTFILES *.*htm*>*.jpg *.jpeg | Для второго (правда без маски, а перечислением) Code: | SELECTFILES *.jp*g>*.htm *.html *.shtml | Или одна кнопка должна работать на оба случая? |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2599
|
(Separately) Posted: Thu Aug 28, 2014 15:47 Post subject: |
|
|
Вахмурка wrote: | понял правильно. |
Тем не менее одной кнопкой для общего случая тоже можно обойтись, например с помощью утилиты TCFS2:
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe /ef "set_ini(`%COMMANDER_PATH%\usercmd.ini`, em_temp, cmd,
`LOADSEARCH Дубликаты по имени`) tem(em_temp) eval(send_wait(`{ENTER}`, findwnd(`TFindFile`))) loop(if(findwnd(`TFindFile`)==0, 0, 0*sendmsg(findwnd(`TFindFile`), $104, $30, $1, 1)*delay(1000)+1)) if(findwnd(`TFindFile`)==0,tcm(533,1))"
WCMICONS.DLL,47
Поиск по шаблону "Дубликаты по имени" (с выводом на панель по Alt+0, либо ручками) и сравнение каталогов
-1 | Придётся создать шаблон для поиска одноимённых дубликатов.
Здесь он назван Дубликаты по имени и может выглядеть в разделе [searches] файла wincmd.ini примерно так:
Code: | Дубликаты по имени_SearchFor=
Дубликаты по имени_SearchIn=
Дубликаты по имени_SearchText=
Дубликаты по имени_SearchFlags=0|002002000020|||||||||1011|
Дубликаты по имени_dupeplugins=[=tc.name]
| Или по-другому – как кому захочется.
Желательно также переназначение на Alt+0 вывода файлов на панель в окне поиска для независимости от раскладки клавиатуры. Это делается путём правки строки 5664 LNG-файла. Например, таким образом Файлы на панель &0.
В пассивной панели предварительно нужно открыть либо ту же папку, что и в активной, либо подпапку с raw-файлами, как в предыдущей задаче, либо ещё какую-то в зависимости от цели сравнения каталогов. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2599
|
(Separately) Posted: Fri Aug 29, 2014 15:14 Post subject: |
|
|
Вахмурка wrote: | Не напишешь (в ТСКВ, например) статейку по сцепке команд? | О чём писать-то? О том, что при сцепке нельзя использовать команды с параметрами? Так такая поддержка нигде и не была заявлена. Говорилось о внутренних и пользовательских. Из справки:
Quote: | New functions and fixes in Total Commander 8.50 beta 1:
- Button bar: Support multiple internal and/or user-defined commands on a single button e.g. cm_SelectAll,cm_Copy |
|
|
Back to top |
|
|
|