Поиск дубликатов по именам файлов разного типа
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Общие вопросы

#1: Поиск дубликатов по именам файлов разного типа Author: Velvet211 PostPosted: Wed Aug 27, 2014 15:50
    —
Добрый день! Подскажите..
Ситуация такая: каждый раз при копировании на винт фотографий с флешки, помещаю raw файлы в отдельную папку. Просматриваю jpg через ctrl+q в соседнем окне, выделяю ненужные фотки и потом их удаляю. Соответственно, какие-то остаются (достаточно много остается, но примерно половина удаляется). Далее, чтобы не забивать жесткий диск, удаляю те же равы просто глазами сравнивая в разных панелях raw и jpg. Так вот - задолбался)) Есть ли какая-то возможность удалять файлы синхронно? Или, скажем, сравнивать каталоги по именам файлов (но без типов) и отмечать только отсутствующие в одном из окон?

Заранее благодарен!

#2:  Author: FlasherLocation: Москва PostPosted: Wed Aug 27, 2014 16:23
    —
Отчего с подфорумом мимо кассы?
Поиск в руки - 1, 2.

#3:  Author: sa PostPosted: Wed Aug 27, 2014 16:58
    —
Velvet211
Если raw-файлы помещены в подпапку по отношению к папке с jpg-файлами (в моём примере подпапка называется SubDirRaw), то можно в папке с jpg-файлами нажать Ctrl+В, с помощью NUM + ввести маску для выделения файлов
Code:
*.jpg>SubDirRaw\*.raw
и затем инвертировать выделение клавишей NUM *.

#4:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Aug 27, 2014 17:03
    —
Velvet211
Всё это отвечалось на форуме и/или есть в справке. И про назначение подфорума "Секреты и советы" говорилось множество раз.
Замечание за нарушение правил форума. Тема перенесена.


Last edited by Avada on Wed Aug 27, 2014 18:34; edited 1 time in total

#5:  Author: Velvet211 PostPosted: Wed Aug 27, 2014 17:21
    —
Вот ведь гики. Я искал. Не нашел

Спасибо за ответ

#6:  Author: sa PostPosted: Wed Aug 27, 2014 17:46
    —
Можно и кнопку создать:
Code:
TOTALCMD#BAR#DATA
cm_DirBranch,em_SelRaw,cm_ExchangeSelection

WCMICONS.DLL,39
Выделить raw-файлы без одноимённых jpg-файлов


-1
, для чего потребуется дополнительно завести пользовательскую команду em_SelRaw такого вида
Code:
SELECTFILES *.jpg>SubDirRaw\*.raw

#7:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Wed Aug 27, 2014 20:02
    —
Есть набор файлов типа:
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. Мало того, что оно мне не надо, но получается, что результат выполнения двух команд раздельно отличается от выполнения их в сцепке. Почему? Как решить задачу?

#8:  Author: sa PostPosted: Wed Aug 27, 2014 20:42
    —
Вахмурка
Команду с параметрами (SELECTFILES *.def>*.abc) надо "упрятать" в пользовательскую и уже её использовать в сцепке команд.
P.S.
Разделителем в сцепке должна быть запятая.

#9:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Wed Aug 27, 2014 21:25
    —
Спасибо, заработало. Решение, кстати, нетривиальное. Не напишешь (в ТСКВ, например) статейку по сцепке команд? Я уже тут задал ряд вопросов, но народ реагировал кисло.
Вот еще вопрос. Известно, что файлы hypertext markup language могут иметь разные расширения: htm, html, shtml (может, еще какие есть, но пока остановлюсь). Так вот, в команде SELECTFILES как таковой вот такая маска
Code:
*.*htm*
работает как часы. А если добавить ">", то увы - отмечаются все *.jpg (изначально было *.html и одноименные *.jpg). Где описаны ограничения на маску после ">"? (до ">" все пучком: команда
Code:
SELECTFILES *.*htm*>*.jpg
работает правильно)

#10:  Author: sa PostPosted: Wed Aug 27, 2014 22:04
    —
Вахмурка
Попробовал команду
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

#11:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Wed Aug 27, 2014 22:53
    —
Я поставлю вопрос по-другому. Есть файлы:
Code:
1.htm
1.jpg
2.shtml
2.jpg
3.html
3.jpg
...
То есть много пар, в каждой из которых одноименные *htm* файл (где *htm* - маска), и jpg (а в идеале - jpg или jpeg) файл. Далее, один из файлов исчезает (неважно, как и почему). Задача - найти (выделить) "одинокий" файл ("партнер" пропавшего). Задачу надо решить одной кнопкой для двух случаев: 1) пропал *htm*: 2) пропал jpg.
Это решаемо?

#12:  Author: sa PostPosted: Thu Aug 28, 2014 00:34
    —
Для первого случая использовать команду
Code:
SELECTFILES *.*htm*>*.jpg *.jpeg
Для второго (правда без маски, а перечислением)
Code:
SELECTFILES *.jp*g>*.htm *.html *.shtml
Или одна кнопка должна работать на оба случая?

#13:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Thu Aug 28, 2014 15:23
    —
Не, ты все понял правильно. Спасибо. Написал бы статью, а?

#14:  Author: sa PostPosted: Thu Aug 28, 2014 15:47
    —
Вахмурка 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-файлами, как в предыдущей задаче, либо ещё какую-то в зависимости от цели сравнения каталогов.

#15:  Author: sa PostPosted: Fri Aug 29, 2014 15:14
    —
Вахмурка 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



Total Commander -> Общие вопросы


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group