Сравнение файлов в панелях по именам
Модераторы: Моторокер, Avada, CaptainFlint, Nik, d-view
- LonerD
- Сообщения: 1174
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
Сравнение файлов в панелях по именам
Можно ли каким-то нехитрым способом сравнить и выделить файлы (и каталоги) в панелях только по именам, не учитывая их размер, даты...
( cm_CompareDirs выделяет в панелях файлы с различающимися датами - это не то, что требуется )
Приходит только идея скрипта, который выполняет копирование списка имён в панелях и построчное сравнение этих списков...
Но может есть какой-то более простой способ?
( cm_CompareDirs выделяет в панелях файлы с различающимися датами - это не то, что требуется )
Приходит только идея скрипта, который выполняет копирование списка имён в панелях и построчное сравнение этих списков...
Но может есть какой-то более простой способ?
Windows 11 | TC DreamLair eternal pre-α
Для разноразмерных было (отдельно для папок). Для любых папок было (у меня сейчас слегка исправленный вариант). Чисто по именам ещё такой вариант:
P.S.: поиск! - поиск! - поиск! 
Код: Выделить всё
'=====================================================================
' Выделение в панелях одноимённых файлов и/или папок
' Параметры: "%P" "%T" <файлы/каталоги/всё: 1/2/3>
'======================= Путь к утилите TCFS2 ========================
TCFS2 = "%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"
'=====================================================================
With WScript.Arguments
If .Count < 3 Then MsgBox "Укажите все требуемые параметры!", 48,_
Space(13) & "Выделение элементов в панели" : WScript.Quit
P = .Item(0) : T = .Item(1) : C = .Item(2)
End With
With CreateObject("Scripting.FileSystemObject")
Set P = .GetFolder(P) : Set T = .GetFolder(T)
End With
Set D = CreateObject("Scripting.Dictionary")
Set G = CreateObject("Scripting.Dictionary")
Select Case C
Case 1 ForFolders List
Case 2 ForFiles List
Case 3 ForFolders List : ForFiles List
End Select : D.RemoveAll : G.RemoveAll : Set D = Nothing : Set G = Nothing
With CreateObject("InternetExplorer.Application")
.Navigate("about:blank")
T = .Document.ParentWindow.ClipboardData.GetData("text")
.Document.ParentWindow.ClipboardData.SetData "text", Mid(List,1)
CreateObject("WScript.Shell").Exec TCFS2 & " /ef msg($0B,0) ""tcm(2033) tcm(4002) tcm(2033)" & _
" tcm(4001), test(L_isActive) | tcm(2033) tcm(4001) tcm(2033) tcm(4002)"" msg($0B,1) redraw()"
.Document.ParentWindow.ClipboardData.SetData "text", Mid(T,1)
.ExecWB 45, 2 : .Quit
End With : Wscript.Quit
Sub ForFolders(S)
Set SFolders = P.SubFolders
If SFolders.Count Then
For Each F in SFolders : D.Add F.Name, "" : Next
For Each F in T.SubFolders : G.Add F.Name, "" : Next
For Each F in D.Keys
If G.Exists(F) Then S = S & vbnewline & F & "\"
Next
End If
End Sub
Sub ForFiles(S)
For Each F in P.Files : D.Add F.Name, "" : Next
For Each F in T.Files : G.Add F.Name, "" : Next
For Each F in D.Keys
If G.Exists(F) Then S = S & vbnewline & F
Next
End SubАвтору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
- LonerD
- Сообщения: 1174
- Зарегистрирован: Вт янв 04, 2011 03:56
- Откуда: Макеевка
- Контактная информация:
Спасибо!!!
Работает. Неспешно и не всегда стабильно (иногда после вызова скрипта ничего не происходит, нужно второй раз вызывать), но в целом - то что надо.
Для любых папок я уже давно использую почти ту конструкцию, что у тебя в посте.
А вот для файлов - не хватало.
Имхо, это такая функция, которая должна бы быть по умолчанию в файловом менеджере. Сейчас у Гислера подобное сравнение можно сделать в инструменте синхронизации, но нет экспорта результатов сравнения на панель (по аналогии с экспортом результатов поиска).
Работает. Неспешно и не всегда стабильно (иногда после вызова скрипта ничего не происходит, нужно второй раз вызывать), но в целом - то что надо.
Для любых папок я уже давно использую почти ту конструкцию, что у тебя в посте.
А вот для файлов - не хватало.
Имхо, это такая функция, которая должна бы быть по умолчанию в файловом менеджере. Сейчас у Гислера подобное сравнение можно сделать в инструменте синхронизации, но нет экспорта результатов сравнения на панель (по аналогии с экспортом результатов поиска).
Windows 11 | TC DreamLair eternal pre-α
LonerD
Пожалуйста. Тормоза и нестабильность возникает из-за занесения в буфер предыдущего значения. Криво отрабатывает компонент IE. Себе-то я делаю (портабельно) с другим компонентом, а тут предлагаю только с тем, что должен быть предустановлен в системе. Через консольную утилиту я могу заносить в буфер только через поток, но тогда нельзя будет скрыть окно консоли.
Могу убрать перезапись, но тогда в буфере будет список совпавшего.
Пожалуйста. Тормоза и нестабильность возникает из-за занесения в буфер предыдущего значения. Криво отрабатывает компонент IE. Себе-то я делаю (портабельно) с другим компонентом, а тут предлагаю только с тем, что должен быть предустановлен в системе. Через консольную утилиту я могу заносить в буфер только через поток, но тогда нельзя будет скрыть окно консоли.
Могу убрать перезапись, но тогда в буфере будет список совпавшего.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
mwz
Выше уже абсолютно ясно (и абсолютно правильно) сказано:
Выше уже абсолютно ясно (и абсолютно правильно) сказано:
Так что — как минимум, не совсем то.LonerD писал(а):Сейчас у Гислера подобное сравнение можно сделать в инструменте синхронизации, но нет экспорта результатов сравнения на панель (по аналогии с экспортом результатов поиска).
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
sa
Если на то пошло, надо не ключи просить, а полноценные настроечные опции. Существуют файл-менеджеры, где это давным-давно реализовано либо в общем диалоге настроек, либо в специальном операционном диалоге сравнения, появляющемся после вызова соответствующей команды. Вообще говоря, второй вариант предпочтительнее.
Если на то пошло, надо не ключи просить, а полноценные настроечные опции. Существуют файл-менеджеры, где это давным-давно реализовано либо в общем диалоге настроек, либо в специальном операционном диалоге сравнения, появляющемся после вызова соответствующей команды. Вообще говоря, второй вариант предпочтительнее.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Сейчас уже имеются, как минимум 3 команды сравнения (Сравнить каталоги, Сравнить каталоги с учётом подкаталогов, Сравнить каталоги, скрыв одинаковые файлы). Потому и предложил ключ, который бы менял их поведение. А так захочется завести целых три дополнительных команды по аналогии с существующими…Flasher писал(а):Готовая команда всяко лучше ключей.
Но храниться-то эти опции всё равно будут, скорее всего, в ключах.Avada писал(а):надо не ключи просить, а полноценные настроечные опции.
А реализация интерфейса, разумеется, может быть разной.
Только режима 3.MVV писал(а):если надо использовать оба режима.
Из контекста неясно, какой второй. Команды или опции в диалоге?Avada писал(а):Вообще говоря, второй вариант предпочтительнее.
Т.е. предлагается пользователю самому сторонними средствами менять значение этого ключа при выполнении нужной команды выделения? И какое тут тогда преимущество, если мы и так сейчас прибегаем к сторонним решениям?sa писал(а):Потому и предложил ключ, который бы менял их поведение.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Т.е. при том или ином режиме мы должны каждый раз лазить в диалог настроек для того, чтобы выделять так, как нам нужно?
Т.е. при том или ином режиме мы должны каждый раз лазить в диалог настроек для того, чтобы выделять так, как нам нужно?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Из контекста, ИМХО, как раз всё ясно.Flasher писал(а):Из контекста неясно, какой второй. Команды или опции в диалоге?
Диалоговые опции в аналогичных программах предусмотрены по-любому. Но в одном случае они достаточно стабильные, долговременные, в общем диалоге настроек, а в другом — в операционном диалоге, более гибко регулируемые. Пример первой реализации — FreeCommander, примеры второй — Altap Salamander и SpeedCommander. Условный аналог соответствующих вариантов в TC (только для другой операции) — настройки архивации на странице "Архиваторы" и в диалоге упаковки.Avada писал(а):либо в общем диалоге настроек, либо в специальном операционном диалоге сравнения, появляющемся после вызова соответствующей команды
Последний раз редактировалось Avada Пт июн 28, 2013 17:32, всего редактировалось 1 раз.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.