Страница 1 из 3

Выделение файлов с одинаковыми именами и разным расширением

Добавлено: Чт авг 29, 2013 00:14
Рамирес_Такт
добрый день, господа

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

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

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

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

Добавлено: Чт авг 29, 2013 01:17
LonerD
Как вариант - скопировать все jpg и cr2 в один каталог (или на виртуальную панель), и использовать TC 8.50Я1, в ней как раз появилась возможность выделения одноимённых файлов.

Добавлено: Чт авг 29, 2013 01:31
Tol!k
Поиск дубликатов: Возможность поиска по совпадающему полю информационного плагина; напр., часть имени, расширение и т. д.
Изображение

Добавлено: Чт авг 29, 2013 05:18
Flasher
Рамирес_Такт
Если в панелях нет файлов с другими расширениями, то в этом скрипте меняем

Код: Выделить всё

With CreateObject("Scripting.FileSystemObject") 
  Set P = .GetFolder(P) : Set T = .GetFolder(T) 
End With
на

Код: Выделить всё

Set FSO = CreateObject("Scripting.FileSystemObject") 
Set P = FSO.GetFolder(P) : Set T = FSO.GetFolder(T) 
и массово F.Name на FSO.GetBaseName(F)

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

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

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

Добавлено: Чт авг 29, 2013 23:56
Tol!k
Рамирес_Такт писал(а):в версии 6.53 нет поиска по same plugin fields, если со скриптом не получится, установлю версию поновее
Да уж, надо поновее. Примерно 8.50Я1 ;)

Добавлено: Пт авг 30, 2013 00:16
MVV
Ага, особенно Я1. :) Думаю, пока стабильной версии 8.50 не выйдет, лучше сильно не соблазнять людей её фишками.

Добавлено: Пт авг 30, 2013 00:56
Tol!k
Наоборот. Надо рекламировать новые фичи )

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

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

Добавлено: Пт авг 30, 2013 09:46
Flasher
Рамирес_Такт
[cut="Я кое-что там не учёл (шапку читать, а не удалять):"]

Код: Выделить всё

'========================================================================================
' Выделение в панелях одноимённых файлов с разными расширениями

' Условие: помимо наличия TCFS2 должен быть установлен плагин TCFS2Tools

' Параметры: "%P" "%T" <расширение для активной панели> <расширение для пассивной панели>
' Пример:    "%P" "%T" txt lst
'================================= Путь к утилите TCFS2 =================================
TCFS2 = "%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"
'========================================================================================
With WScript.Arguments
  If .Count < 4 Then MsgBox "Укажите все требуемые параметры!", 48,_
  Space(13) & "Выделение элементов в панели" : WScript.Quit
  P = .Item(0) : T = .Item(1) : Ext1 = .Item(2) : Ext2 = .Item(3)
End With : Set FSO = CreateObject("Scripting.FileSystemObject")
Dim WSH : Set WSH = CreateObject("WScript.Shell")
Set D = CreateObject("Scripting.Dictionary")
Set G = CreateObject("Scripting.Dictionary")
Set SHA = CreateObject("Shell.Application")
Set Path = SHA.NameSpace(P) : Set Targ = SHA.NameSpace(T)
Set Items = Path.Items : Items.Filter 192, "*." & Ext1
For Each F in Items : D.Add FSO.GetBaseName(F), "" : Next
Set Items = Targ.Items : Items.Filter 192, "*." & Ext2
For Each F in Items : G.Add FSO.GetBaseName(F), "" : Next
For Each F in D.Keys
  If G.Exists(F) Then
    List1 = List1 & vbnewline & F & "." & Ext1
    List2 = List2 & vbnewline & F & "." & Ext2
  End If
Next

With CreateObject("InternetExplorer.Application")
  .Navigate("about:blank")
  Clip = .Document.ParentWindow.ClipboardData.GetData("text")
  .Document.ParentWindow.ClipboardData.SetData "text", Mid(List1,1)
  WSH.Exec TCFS2 & " /ef msg($0B,0) tcm(2033,0) send({TAB})"
  .Document.ParentWindow.ClipboardData.SetData "text", Mid(List2,1)
  WSH.Exec TCFS2 & " /ef tcm(2033,0) send({TAB}) msg($0B,1) redraw()"
  .Document.ParentWindow.ClipboardData.SetData "text", String(1,Clip)
  .ExecWB 45, 2 : .Quit
End With : D.RemoveAll : G.RemoveAll : Set D = Nothing : Set G = Nothing : Set F = Nothing
Set Path = Nothing : Set Targ = Nothing : Set Items = Nothing : Set WSH = Nothing : Set FSO = Nothing
[/cut]

Добавлено: Пт авг 30, 2013 09:52
Рамирес_Такт
спасибо, камрады, за ответы
буду пробовать, об итогах отпишу

Добавлено: Чт сен 12, 2013 22:10
Рамирес_Такт
sa, спасибо за отличный способ. просто и эффективно :D

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

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

Добавлено: Чт сен 12, 2013 22:55
Flasher
Рамирес_Такт писал(а):возможно, я накосячил с установкой TCFS2 + TCFS2Tools ?
Совершенно верно. Путь к TCFS2 в скрипте не соответствует реальному. Утилита портабельная, никаких специальных настоек для неё не требуется. Достаточно скопировать в любую подпапку Коммандера и прописать путь с переменной среды в скрипте.
TCFS2Tools в данном случае можно не ставить. Это от старого скрипта мысль осталась.

Добавлено: Чт сен 12, 2013 23:42
Tol!k
sa писал(а):Если можно обойтись без автоматизации…
1. Выделить файлы *.jpg и сохранить выделение в файл.
2. В редакторе заменить .jpg на .cr2
кнопка

Код: Выделить всё

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. Загрузить выделение из файла.