View previous topic :: View next topic |
Author |
Message |
Рамирес_Такт
Joined: 29 Aug 2013 Posts: 7
|
(Separately) Posted: Thu Aug 29, 2013 00:14 Post subject: Выделение файлов с одинаковыми именами и разным расширением |
|
|
добрый день, господа
дело очень простое - в одной панели файлы с расширением *.jpg, на второй - с расширением *.cr2 (кэноновский raw), и их очень сильно больше, чем джипегов
нужно выделить на второй панели только те *.cr2 файлы, которые имеют аналоги в папке с джипегами (те же имена)
со скриптом справлюсь (памятку прочел ), но отладить его, если что, не смогу, ибо гуманитарий
буду крайне благодарен за помощь |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Thu Aug 29, 2013 01:17 Post subject: |
|
|
Как вариант - скопировать все jpg и cr2 в один каталог (или на виртуальную панель), и использовать TC 8.50Я1, в ней как раз появилась возможность выделения одноимённых файлов. _________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Thu Aug 29, 2013 01:31 Post subject: |
|
|
Quote: | Поиск дубликатов: Возможность поиска по совпадающему полю информационного плагина; напр., часть имени, расширение и т. д. |
|
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Aug 29, 2013 05:18 Post subject: |
|
|
Рамирес_Такт
Если в панелях нет файлов с другими расширениями, то в этом скрипте меняем
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) _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Рамирес_Такт
Joined: 29 Aug 2013 Posts: 7
|
(Separately) Posted: Thu Aug 29, 2013 23:29 Post subject: |
|
|
2Flasher:
скрипт не работает, к сожалению
что я делал:
- заменил код на код и массово F.Name на FSO.GetBaseName(F)
- удалил шапку скрипта (теперь он начинается с With WScript.Arguments)
- удалил из папки с джипегами файл thumbs.db (вы писали, что не должно быть файлов с другими расширениями
- параметры ставил такие: "%P" "%T" "1"
- используемая версия коммандера - 6.53
- система - windows xp
запускаю плагин и выскакивает ошибка:
Сценарий : .... .vbs
Строка: 21 (если шапку не удалять - 28 )
Символ: 3
Ошибка: Не удается найти указанный файл
Код: 80070002
Источник: WshShell.Exec
что я делаю не так?
2Tol!k:
в версии 6.53 нет поиска по same plugin fields, если со скриптом не получится, установлю версию поновее и попробую ваш способ |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Thu Aug 29, 2013 23:56 Post subject: |
|
|
Рамирес_Такт wrote: | в версии 6.53 нет поиска по same plugin fields, если со скриптом не получится, установлю версию поновее | Да уж, надо поновее. Примерно 8.50Я1 |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Fri Aug 30, 2013 00:56 Post subject: |
|
|
Наоборот. Надо рекламировать новые фичи ) |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10315 Location: Россия, Саратов
|
(Separately) Posted: Fri Aug 30, 2013 07:03 Post subject: |
|
|
Рамирес_Такт
На основе версии 6.53 здесь практически нет смысла пытаться получить какую-то консультацию (не только по данному вопросу), поскольку все рекомендации будут даваться применительно к современным версиям. В функциональности TC с 2005 года произошли огромные изменения. Для претендующих на полноценную техподдержку на форуме обновление (в оптимальном варианте — до последней стабильной версии) не просто желательно, а обязательно. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2624
|
(Separately) Posted: Fri Aug 30, 2013 08:30 Post subject: |
|
|
Рамирес_Такт
Если можно обойтись без автоматизации…
1. Выделить файлы *.jpg и сохранить выделение в файл.
2. В редакторе заменить .jpg на .cr2, выделить всё и скопировать в буфер.
3. Загрузить выделение из буфера. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Fri Aug 30, 2013 09:46 Post subject: |
|
|
Рамирес_Такт
Я кое-что там не учёл (шапку читать, а не удалять):
Code: | '========================================================================================
' Выделение в панелях одноимённых файлов с разными расширениями
' Условие: помимо наличия 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 |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Fri Aug 30, 2013 18:38; edited 2 times in total |
|
Back to top |
|
|
Рамирес_Такт
Joined: 29 Aug 2013 Posts: 7
|
(Separately) Posted: Fri Aug 30, 2013 09:52 Post subject: |
|
|
спасибо, камрады, за ответы
буду пробовать, об итогах отпишу |
|
Back to top |
|
|
Рамирес_Такт
Joined: 29 Aug 2013 Posts: 7
|
(Separately) Posted: Thu Sep 12, 2013 22:10 Post subject: |
|
|
sa, спасибо за отличный способ. просто и эффективно
Flasher, к сожалению, ваш скрипт запустить не удалось. строка 36, символ 3, не удается найти указанный файл. код 80070002, источник wshshell.exec
возможно, я накосячил с установкой TCFS2 + TCFS2Tools ?
(ну, установка - это громко сказано я не смог найти инструкции и просто скопировал ini и dll файлі в системные папки) |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Sep 12, 2013 22:55 Post subject: |
|
|
Рамирес_Такт wrote: | возможно, я накосячил с установкой TCFS2 + TCFS2Tools ? | Совершенно верно. Путь к TCFS2 в скрипте не соответствует реальному. Утилита портабельная, никаких специальных настоек для неё не требуется. Достаточно скопировать в любую подпапку Коммандера и прописать путь с переменной среды в скрипте.
TCFS2Tools в данном случае можно не ставить. Это от старого скрипта мысль осталась. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Thu Sep 12, 2013 23:42 Post subject: |
|
|
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. Загрузить выделение из файла. |
|
Back to top |
|
|
|