Страница 1 из 2
Поиск дубликатов по именам файлов разного типа
Добавлено: Ср авг 27, 2014 15:50
Velvet211
Добрый день! Подскажите..
Ситуация такая: каждый раз при копировании на винт фотографий с флешки, помещаю raw файлы в отдельную папку. Просматриваю jpg через ctrl+q в соседнем окне, выделяю ненужные фотки и потом их удаляю. Соответственно, какие-то остаются (достаточно много остается, но примерно половина удаляется). Далее, чтобы не забивать жесткий диск, удаляю те же равы просто глазами сравнивая в разных панелях raw и jpg. Так вот - задолбался)) Есть ли какая-то возможность удалять файлы синхронно? Или, скажем, сравнивать каталоги по именам файлов (но без типов) и отмечать только отсутствующие в одном из окон?
Заранее благодарен!
Добавлено: Ср авг 27, 2014 16:23
Flasher
Отчего с подфорумом мимо кассы?
Поиск в руки -
1,
2.
Добавлено: Ср авг 27, 2014 16:58
sa
Velvet211
Если raw-файлы помещены в подпапку по отношению к папке с jpg-файлами (в моём примере подпапка называется SubDirRaw), то можно в папке с jpg-файлами нажать
Ctrl+В, с помощью
NUM + ввести маску для выделения файлов
и затем инвертировать выделение клавишей
NUM *.
Добавлено: Ср авг 27, 2014 17:03
Avada
Velvet211
Всё это отвечалось на форуме и/или есть в справке. И про назначение подфорума "Секреты и советы" говорилось множество раз.
Замечание за нарушение
правил форума.
Тема перенесена.
Добавлено: Ср авг 27, 2014 17:21
Velvet211
Вот ведь гики. Я искал. Не нашел
Спасибо за ответ
Добавлено: Ср авг 27, 2014 17:46
sa
Можно и кнопку создать:
Код: Выделить всё
TOTALCMD#BAR#DATA
cm_DirBranch,em_SelRaw,cm_ExchangeSelection
WCMICONS.DLL,39
Выделить raw-файлы без одноимённых jpg-файлов
-1
, для чего потребуется дополнительно завести пользовательскую команду
em_SelRaw такого вида
Добавлено: Ср авг 27, 2014 20:02
Вахмурка
Есть набор файлов типа:
Иногда один из файлов пропадает, то есть получается (если пропал 1.def)
Как найти одинокий, лишенный пары, файл *.abc? Раньше я делал так:
В результате выделяются все файлы, кроме 1.abc. Но это неудобно, и я нажимал "звездочку". Все - цель достигнута: выделен 1.abc.
Вот
этот пост sa натолкнул меня на мысль использовать "сцепку команд", то есть
Код: Выделить всё
SELECTFILES *.def>*.abc;cm_ExchangeSelFiles
Но тогда в результате выделяются
все файлы *.def. Мало того, что оно мне не надо, но получается, что результат выполнения двух команд раздельно отличается от выполнения их в сцепке. Почему? Как решить задачу?
Добавлено: Ср авг 27, 2014 20:42
sa
Вахмурка
Команду с параметрами (SELECTFILES *.def>*.abc) надо "упрятать" в пользовательскую и уже её использовать в сцепке команд.
P.S.
Разделителем в сцепке должна быть запятая.
Добавлено: Ср авг 27, 2014 21:25
Вахмурка
Спасибо, заработало. Решение, кстати, нетривиальное. Не напишешь (в ТСКВ, например) статейку по сцепке команд? Я уже
тут задал ряд вопросов, но народ реагировал кисло.
Вот еще вопрос. Известно, что файлы hypertext markup language могут иметь разные расширения: htm, html, shtml (может, еще какие есть, но пока остановлюсь). Так вот, в команде SELECTFILES как таковой вот такая маска
работает как часы. А если добавить ">", то увы - отмечаются все *.jpg (изначально было *.html и одноименные *.jpg). Где описаны ограничения на маску после ">"? (до ">" все пучком: команда
работает правильно)
Добавлено: Ср авг 27, 2014 22:04
sa
Вахмурка
Попробовал команду
SELECTFILES *.*htm*>*.jpg
У меня выделяет, как и положено, только одноимённые с
.*htm* файлы
.jpg, а не все, как описал ты. Или я не так понял вопрос…
Вот ещё из справки:
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
Добавлено: Ср авг 27, 2014 22:53
Вахмурка
Я поставлю вопрос по-другому. Есть файлы:
То есть много пар, в каждой из которых одноименные *htm* файл (где *htm* - маска), и jpg (а в идеале - jpg или jpeg) файл. Далее, один из файлов исчезает (неважно, как и почему). Задача - найти (выделить) "одинокий" файл ("партнер" пропавшего). Задачу надо решить
одной кнопкой для двух случаев: 1) пропал *htm*: 2) пропал jpg.
Это решаемо?
Добавлено: Чт авг 28, 2014 00:34
sa
Для первого случая использовать команду
Для второго (правда без маски, а перечислением)
Или одна кнопка должна работать на оба случая?
Добавлено: Чт авг 28, 2014 15:23
Вахмурка
Не, ты все понял правильно. Спасибо. Написал бы статью, а?
Добавлено: Чт авг 28, 2014 15:47
sa
Вахмурка писал(а):понял правильно.
Тем не менее одной кнопкой для общего случая тоже можно обойтись, например с помощью утилиты
TCFS2:
Код: Выделить всё
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 примерно так:
Код: Выделить всё
Дубликаты по имени_SearchFor=
Дубликаты по имени_SearchIn=
Дубликаты по имени_SearchText=
Дубликаты по имени_SearchFlags=0|002002000020|||||||||1011|
Дубликаты по имени_dupeplugins=[=tc.name]
Или по-другому – как кому захочется.
Желательно также переназначение на Alt+0 вывода файлов на панель в окне поиска для независимости от раскладки клавиатуры. Это делается путём правки строки 5664 LNG-файла. Например, таким образом
Файлы на панель &0.
В пассивной панели предварительно нужно открыть либо ту же папку, что и в активной, либо подпапку с raw-файлами, как в предыдущей задаче, либо ещё какую-то в зависимости от цели сравнения каталогов.
Добавлено: Пт авг 29, 2014 15:14
sa
Вахмурка писал(а):Не напишешь (в ТСКВ, например) статейку по сцепке команд?
О чём писать-то? О том, что при сцепке нельзя использовать команды с параметрами? Так такая поддержка нигде и не была заявлена. Говорилось о внутренних и пользовательских. Из справки:
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