Выделение файлов с одинаковыми именами и разным расширением
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Автоматизация Total Commander

#1: Выделение файлов с одинаковыми именами и разным расширением Author: Рамирес_Такт PostPosted: Thu Aug 29, 2013 00:14
    —
добрый день, господа

дело очень простое - в одной панели файлы с расширением *.jpg, на второй - с расширением *.cr2 (кэноновский raw), и их очень сильно больше, чем джипегов Smile

нужно выделить на второй панели только те *.cr2 файлы, которые имеют аналоги в папке с джипегами (те же имена)

со скриптом справлюсь (памятку прочел Smile ), но отладить его, если что, не смогу, ибо гуманитарий Very Happy

буду крайне благодарен за помощь

#2:  Author: LonerDLocation: Макеевка PostPosted: Thu Aug 29, 2013 01:17
    —
Как вариант - скопировать все jpg и cr2 в один каталог (или на виртуальную панель), и использовать TC 8.50Я1, в ней как раз появилась возможность выделения одноимённых файлов.

#3:  Author: Tol!kLocation: Арзамас PostPosted: Thu Aug 29, 2013 01:31
    —
Quote:
Поиск дубликатов: Возможность поиска по совпадающему полю информационного плагина; напр., часть имени, расширение и т. д.


#4:  Author: FlasherLocation: Москва PostPosted: Thu Aug 29, 2013 05:18
    —
Рамирес_Такт
Если в панелях нет файлов с другими расширениями, то в этом скрипте меняем
Code:
With CreateObject("Scripting.FileSystemObject")
  Set P = .GetFolder(P) : Set T = .GetFolder(T)
End With
на
Code:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set P = FSO.GetFolder(P) : Set T = FSO.GetFolder(T)

и массово F.Name на FSO.GetBaseName(F)

#5:  Author: Рамирес_Такт PostPosted: Thu Aug 29, 2013 23:29
    —
2Flasher:
скрипт не работает, к сожалению
что я делал:
- заменил код на код и массово F.Name на FSO.GetBaseName(F)
- удалил шапку скрипта (теперь он начинается с With WScript.Arguments)
- удалил из папки с джипегами файл thumbs.db (вы писали, что не должно быть файлов с другими расширениями
- параметры ставил такие: "%P" "%T" "1"
- используемая версия коммандера - 6.53 Rolling Eyes
- система - windows xp
запускаю плагин и выскакивает ошибка:
Сценарий : .... .vbs
Строка: 21 (если шапку не удалять - 28 )
Символ: 3
Ошибка: Не удается найти указанный файл
Код: 80070002
Источник: WshShell.Exec

что я делаю не так?

2Tol!k:
в версии 6.53 нет поиска по same plugin fields, если со скриптом не получится, установлю версию поновее и попробую ваш способ

#6:  Author: Tol!kLocation: Арзамас PostPosted: Thu Aug 29, 2013 23:56
    —
Рамирес_Такт wrote:
в версии 6.53 нет поиска по same plugin fields, если со скриптом не получится, установлю версию поновее
Да уж, надо поновее. Примерно 8.50Я1 Wink

#7:  Author: MVVLocation: Ростов-Дон PostPosted: Fri Aug 30, 2013 00:16
    —
Ага, особенно Я1. Smile Думаю, пока стабильной версии 8.50 не выйдет, лучше сильно не соблазнять людей её фишками.

#8:  Author: Tol!kLocation: Арзамас PostPosted: Fri Aug 30, 2013 00:56
    —
Наоборот. Надо рекламировать новые фичи )

#9:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri Aug 30, 2013 07:03
    —
Рамирес_Такт
На основе версии 6.53 здесь практически нет смысла пытаться получить какую-то консультацию (не только по данному вопросу), поскольку все рекомендации будут даваться применительно к современным версиям. В функциональности TC с 2005 года произошли огромные изменения. Для претендующих на полноценную техподдержку на форуме обновление (в оптимальном варианте — до последней стабильной версии) не просто желательно, а обязательно.

#10:  Author: sa PostPosted: Fri Aug 30, 2013 08:30
    —
Рамирес_Такт
Если можно обойтись без автоматизации…
1. Выделить файлы *.jpg и сохранить выделение в файл.
2. В редакторе заменить .jpg на .cr2, выделить всё и скопировать в буфер.
3. Загрузить выделение из буфера.

#11:  Author: FlasherLocation: Москва PostPosted: Fri Aug 30, 2013 09:46
    —
Рамирес_Такт
 Я кое-что там не учёл (шапку читать, а не удалять):


Last edited by Flasher on Fri Aug 30, 2013 18:38; edited 2 times in total

#12:  Author: Рамирес_Такт PostPosted: Fri Aug 30, 2013 09:52
    —
спасибо, камрады, за ответы
буду пробовать, об итогах отпишу

#13:  Author: Рамирес_Такт PostPosted: Thu Sep 12, 2013 22:10
    —
sa, спасибо за отличный способ. просто и эффективно Very Happy

Flasher, к сожалению, ваш скрипт запустить не удалось. строка 36, символ 3, не удается найти указанный файл. код 80070002, источник wshshell.exec

возможно, я накосячил с установкой TCFS2 + TCFS2Tools ?
(ну, установка - это громко сказано Embarassed я не смог найти инструкции и просто скопировал ini и dll файлі в системные папки)

#14:  Author: FlasherLocation: Москва PostPosted: Thu Sep 12, 2013 22:55
    —
Рамирес_Такт wrote:
возможно, я накосячил с установкой TCFS2 + TCFS2Tools ?
Совершенно верно. Путь к TCFS2 в скрипте не соответствует реальному. Утилита портабельная, никаких специальных настоек для неё не требуется. Достаточно скопировать в любую подпапку Коммандера и прописать путь с переменной среды в скрипте.
TCFS2Tools в данном случае можно не ставить. Это от старого скрипта мысль осталась.

#15:  Author: Tol!kLocation: Арзамас PostPosted: Thu Sep 12, 2013 23:42
    —
sa wrote:
Если можно обойтись без автоматизации…
1. Выделить файлы *.jpg и сохранить выделение в файл.
2. В редакторе заменить .jpg на .cr2

кнопка
Code:
TOTALCMD#BAR#DATA
%ComSpec% /c chcp 1251 &(for /f "delims=" %# in
('dir /b *.jpg') do @echo(%%~n#.cr2)>.cr2.lst
wcmicons.dll,26
список с заменёнными на .cr2 расширениями

1
-1


осталось
3. Загрузить выделение из файла.

#16:  Author: Рамирес_Такт PostPosted: Fri Sep 13, 2013 23:48
    —
Flasher wrote:
Достаточно скопировать в любую подпапку Коммандера и прописать путь с переменной среды в скрипте


с TCFS2 и с переменной среды разобрался (хоть узнал, что это такое Wink )
в скрипте у меня теперь девятая строка выглядит так, до последней запятой:

Quote:
TCFS2 = "%COMMANDER_PATH%\Utils\TCF32\TCFS2.exe"


скрипт запускается (по крайней мере, происходит пауза) и выдает такую ошибку:
строка 40, символ 19, вызванный объект был отключен от клиентов, код 80010108


2Tol!k:

при запуске вашего кода выдает - строка 1, символ 9, синтаксическая ошибка, код 800А03ЕА


пс. вы извините, что я так занудничаю. просто о программировании представления не имею никакого практически, а заставить скрипт работать хочется Embarassed

#17:  Author: Tol!kLocation: Арзамас PostPosted: Sat Sep 14, 2013 00:10
    —
Рамирес_Такт wrote:
при запуске вашего кода выдает - строка 1, символ 9, синтаксическая ошибка, код 800А03ЕА
сохранили как .vbs ?
а это была
Tol!k wrote:
кнопка

#18:  Author: FlasherLocation: Москва PostPosted: Sat Sep 14, 2013 00:51
    —
Рамирес_Такт
IE и Windows каких версий?
Рамирес_Такт wrote:
...TCF32\TCFS2.exe"
Почему 3?

Tol!k wrote:
сохранили как .vbs ?
Откуда тогда ошибке взяться?

#19:  Author: Tol!kLocation: Арзамас PostPosted: Sat Sep 14, 2013 01:11
    —
Flasher wrote:
Откуда
а хз

#20:  Author: FlasherLocation: Москва PostPosted: Sat Sep 14, 2013 01:18
    —
Так это и есть ошибка сервера сценариев. Она из воздуха не берётся.

Рамирес_Такт
А если удалить в 40-й стоке то, что в кавычках?: " : .Quit"

#21:  Author: Tol!kLocation: Арзамас PostPosted: Sat Sep 14, 2013 01:23
    —
Flasher wrote:
Она из воздуха не берётся.
ещё раз посмотри, откуда ей здесь взяться )

#22:  Author: FlasherLocation: Москва PostPosted: Sat Sep 14, 2013 01:27
    —
Tol!k
Ага, не досмотрел, думал - мне вопрос. )

#23:  Author: Рамирес_Такт PostPosted: Sun Sep 15, 2013 01:15
    —
Flasher wrote:

IE и Windows каких версий?


windows xp
google chrome

Flasher wrote:
Почему 3?

поправил


Quote:
А если удалить в 40-й стоке то, что в кавычках?: " : .Quit"

скрипт запускается, но не происходит вообще ничего

#24:  Author: FlasherLocation: Москва PostPosted: Sun Sep 15, 2013 09:36
    —
Рамирес_Такт wrote:
google chrome
При чём тут Хром? IE - это вполне конкретный и встроенный в систему браузер.
Рамирес_Такт wrote:
скрипт запускается, но не происходит вообще ничего
Параметры указаны в соответствии с данными из шапки?

#25:  Author: Рамирес_Такт PostPosted: Sun Sep 15, 2013 11:02
    —
Flasher wrote:
Параметры указаны в соответствии с данными из шапки?


да, вот так:
Quote:
"%P" "%T" jpg cr2


эксплорер версии 6.0.29

#26:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Sep 15, 2013 11:18
    —
Рамирес_Такт
Это какая же XP установлена и сколько лет назад при таком Windows Internet Explorer?

#27:  Author: sa PostPosted: Sun Sep 15, 2013 20:37
    —
Рамирес_Такт wrote:
но не происходит вообще ничего

Активна та панель, что с jpg файлами?

#28:  Author: FlasherLocation: Москва PostPosted: Sun Sep 15, 2013 22:17
    —
Рамирес_Такт
Не буду настаивать на обновлении старинного IE. Сделаем так:
Добавляем кавычки в 9 строке
Quote:
TCFS2 = """%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"""
и меняем нижний кусок кода на
 этот:

Забыл, что в XP нет команды clip. Для XP кусок
 такой:
9 строку не править. Между 9 и 10-й строкой вставить:
Code:
'================================= Путь к утилите clip ==================================
Clip  = "%COMMANDER_PATH%\Utils\clip.exe"
Скачать clip.

#29:  Author: sa PostPosted: Tue Sep 24, 2013 15:39
    —
Tol!k wrote:
осталось
3. Загрузить выделение из файла.

Если для третьего пункта “прикрутить” TCFS2, то можно обойтись одной кнопкой:
Code:
TOTALCMD#BAR#DATA
%ComSpec% /c chcp 1251 &(for /f "delims=" %# in ('dir /b *.jpg') do @echo %~n#.cr2)>C:\.cr2.lst
& "%%COMMANDER_PATH%%\Utils\TCFS2\TCFS2.exe" /ef "tcm(4002) tcm(2032,1) delay(500) send(`~(C:\.cr2.lst){ENTER}`, findwnd(`#32770`)) delay(500) tcm(4001)"
wcmicons.dll,26
Выделить в пассивной правой панели файлы .cr2 одноимённые с файлами *.jpg в активной левой

1
-1


Last edited by sa on Thu Sep 26, 2013 21:00; edited 1 time in total

#30:  Author: FlasherLocation: Москва PostPosted: Wed Sep 25, 2013 22:51
    —
sa
Решил испробовать. Открывается окно выбора файла - и тишина, в корне C: остаётся торчать этот файл. Win7/TC x32.

#31:  Author: sa PostPosted: Thu Sep 26, 2013 21:05
    —
Flasher
Кнопку изначально пробовал только на XP. В Win7 обнаружил непонятную проблему с отправкой из кнопки клавиши TAB. Пока решил вопрос использованием вместо TAB команд переноса курсора в левую (4001) и правую (4002) панель. Подправил предыдущую кнопку.
При наличии установленного модуля TCFS2Tools можно попробовать вариант, независящий от выбранной (левой или правой) панели с файлами *.jpg:
Code:
TOTALCMD#BAR#DATA
%ComSpec% /c chcp 1251 &(for /f "delims=" %# in ('dir /b *.jpg') do @echo %~n#.cr2)>C:\.cr2.lst
& "%%COMMANDER_PATH%%\Utils\TCFS2\TCFS2.exe" /ef "if(L_isActive, tcm(4002), tcm(4001)) tcm(2032,1) delay(500) send(`~(C:\.cr2.lst){ENTER}`, findwnd(`#32770`)) delay(500) if(L_isActive, tcm(4002), tcm(4001))"
wcmicons.dll,26
Выделить в пассивной панели файлы .cr2 одноимённые с файлами *.jpg в активной

1
-1

#32:  Author: FlasherLocation: Москва PostPosted: Fri Sep 27, 2013 00:03
    —
sa
Это сработало, но я бы такой кнопкой не рекомендовал пользоваться (попрыгушки, паузы, ненужный файл в корне, вылаз сообщения, если, например, панель другую активировать).

#33:  Author: sa PostPosted: Fri Sep 27, 2013 12:59
    —
Flasher wrote:
ненужный файл в корне
Желающим каждый раз удалять его, ничто не мешает добавить в строку параметров
Code:
 & del C:\.cr2.lst
Flasher wrote:
вылаз сообщения, если, например, панель другую активировать
Что за сообщение?

#34:  Author: FlasherLocation: Москва PostPosted: Sat Sep 28, 2013 16:04
    —
sa wrote:
ничто не мешает добавить в строку параметров
Это не худшее из перечисленных зол.
Ещё и с именами, где присутствуют юникодные символы, кнопка не работает.
sa wrote:
Что за сообщение?
Не помню, у меня там кракозябры были..

#35:  Author: Tol!kLocation: Арзамас PostPosted: Sat Sep 28, 2013 16:32
    —
sa wrote:
В Win7 обнаружил непонятную проблему с отправкой из кнопки клавиши TAB.
на ХР аналогично.
Code:
TOTALCMD#BAR#DATA
%ComSpec% /c chcp 1251 &(for /f "delims=" %# in
('dir /b "%T\*.jpg"') do @echo(%%~n#.cr2)>"%%tmp%%\cr2.tmp" & "%%commander_path%%\TCFS2.exe" /ef "tcm(2032,1) delay(500) send(`~("%%tmp%%\cr2.tmp"){ENTER}`, findwnd(`#32770`))"
wcmicons.dll,26
Выделить в активной панели .cr2 одноимённые с .jpg в пассивной

1
-1

без смены панели

#36:  Author: sa PostPosted: Sat Sep 28, 2013 20:04
    —
Flasher wrote:
Не помню, у меня там кракозябры были..
Спасибо! Познавательно! Smile

Tol!k wrote:
без смены панели
У меня не загружается выделение из файла. С такой строкой параметров всё нормально:
Code:
('dir /b "%T*.jpg"') do @echo %%~n#.cr2)>"%%tmp%%\cr2.tmp" & "%%commander_path%%\TCFS2.exe" /ef "tcm(2032,1) delay(500) send(`~("{%%}tmp{%%}\cr2.tmp"){ENTER}`, findwnd(`#32770`))"
P.S. Пробовал echo перенаправить не в файл, а сразу в буфер (с помощью | clip). Имена файлов создаются в буфере, но с лишним пробелом. Как бы избавиться от этих пробелов?

#37:  Author: FlasherLocation: Москва PostPosted: Sun Sep 29, 2013 12:39
    —
sa wrote:
с помощью | clip
Не забыл, что ?:
Рамирес_Такт wrote:
- система - windows xp

sa wrote:
Имена файлов создаются в буфере, но с лишним пробелом.
Это мешает?
sa wrote:
Как бы избавиться от этих пробелов?
Черeз создание переменной в set и уборе последнего символа. Не уверен, что это в самой кнопке реализуемо.

#38:  Author: Tol!kLocation: Арзамас PostPosted: Sun Sep 29, 2013 13:50
    —
Quote:
Черeз создание переменной в set и уборе последнего символа.
это почти гарантированно приведёт к проблемам с символами !/% в именах
Quote:
Как бы избавиться от этих пробелов?
Попробуй всё содержимое кнопки перенести в .cmd а в кнопке оставь только его вызов.
Но не уверен в положительном результате, похоже пробел вставляет сам cmd.exe когда перед выполнением парсит )|clip

#39:  Author: FlasherLocation: Москва PostPosted: Sun Sep 29, 2013 14:26
    —
Tol!k wrote:
это почти гарантированно приведёт к проблемам с символами !/% в именах
Вообще в именах или только на концах имён?
Tol!k wrote:
Попробуй всё содержимое кнопки перенести в .cmd
Проще сразу моим скриптом пользоваться. Его же идея - весь код в кнопке.

#40:  Author: Tol!kLocation: Арзамас PostPosted: Sun Sep 29, 2013 14:31
    —
Flasher wrote:
Вообще в именах
Вообще. Для cmd это спецсимволы

#41:  Author: sa PostPosted: Sun Sep 29, 2013 23:40
    —
Flasher wrote:
Не забыл, что ?
Так для XP тоже ведь имеется сторонняя утилита clip.
Flasher wrote:
Это мешает?
Да выделение не загружается из буфера, поскольку каждое имя файла содержит лишний пробел.
Tol!k wrote:
похоже пробел вставляет сам cmd.exe
Нет, так нет – зато буфер целее будет, если через файл загружать выделение.

#42:  Author: igorgri PostPosted: Wed Nov 01, 2017 13:40
    —
Решил не плодить ветки.

Вопрос такой. Есть куча книг. они разных форматов - pdf djvu fb2 mobi epub и прочие.

Если мы ищем дубли по имени, то ТС находит только файлы с одинаковым расширением.

Можем конечно, зная точное имя файла найти все файлы с таким именем и разными расширениями...

А вот можно как то задать так поиск, чтобы выдавало в результате типа такого:

123.pdf
123.fb2
123.djvu
----------------
223.pdf
223.fb2
----------------
fgh.djvu
fgh.epub

Потом бы выводил на панель и раскидывал по необходимым папкам

Добавлено спустя 54 минуты:

Да по проблеме ТС - тоже фотик, тоже в 2-х форматах. Поэтому для удобства копирую все с карты в отдельную папку выделяю через Ctrl+A и нажимаю Ctrl+M. После этого в Имя задаю [=tc.Дата модификации.Y-M-D h-m-s] Врезультате получаю файлы с именами типа

2017-11-01 13-23-47.jpg
2017-11-01 13-23-48.nef

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

#43:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Nov 01, 2017 14:41
    —
igorgri
Ваше "не плодить ветки" в переводе на нормальный язык называется оффтопом и вдобавок не имеет отношенияк подфоруму по автоматизации. А плодить тут ничего и не надо, поскольку обсуждать нечего. Поиск дубликатов может идти по самым разным критериям, включая (уже достаточно давно) данные плагинов. В том числе по имени без расширения (например, [=tc.Имя]) с отключением прочих опций. Справка доступна (кстати, про методику автоматического копирования взаимосвязанных файлов с разными расширениями в ней написано тоже), на форуме работает поиск.
А ваша дописка в силу вышесказанного вообще здесь неуместна (особенно в виде ответа на обсуждение многолетней давности).
Замечание за нарушение правил форума.



Total Commander -> Автоматизация Total Commander


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

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group