Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Сравнение файлов в панелях по именам
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Avada



Joined: 01 Aug 2008
Posts: 10235
Location: Россия, Саратов

Post (Separately) Posted: Thu Apr 16, 2015 08:30    Post subject: Reply with quote

hjiapex
Прочитайте внимательно правила форума — слишком много нарушений.
По очевидным причинам обсуждение полностью перенесено из "Общих вопросов" в подфорум по автоматизации и добавлено в уже существующую тему.
Оверквотинг на форуме запрещён. Научитесь обходиться без злоупотребления кнопкой "Цитата", есть другие методы. Всё избыточное цитирование из предыдущих постов удалено без всякого ущерба для связности обсуждения.
Исходный заголовок темы "Сравнить каталоги" был слишком общим.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
hjiapex



Joined: 16 Apr 2015
Posts: 35

Post (Separately) Posted: Thu Apr 16, 2015 11:42    Post subject: Reply with quote

Господи, ЗАРАБОТАЛО! БОЖЕ МОЙ! З А Р А Б О Т А Л О!!!

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

Рано радуюсь. Сравнивает то идет, если я просто открыл 2 каталога с файлами. А если я открываю единым списком файлов свой каталог(с подкаталогами), то скрипт эти списки не сравнивает...

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

Блин, наверно не понятно объяснил. При нажатии Shift+B открывается единый список файлов в данном каталоге (то есть подкаталоги тоже сканируются). Просто в моем случае одинаковые файлы находятся в разных папках. И таких папок около 40, по этому использовал сочетание Shift+B
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2561

Post (Separately) Posted: Thu Apr 16, 2015 17:36    Post subject: Reply with quote

hjiapex wrote:
- Сравнить каталоги(она выделяла в активном каталоге файлы, которые НЕ повторяются по именам)

Прикол в том, что командой Сравнить каталоги
справка wrote:
Выделяются различающиеся файлы, причём только более новые. Файлы, отсутствующие в одном каталоге также выделяются в другом.
То есть имя у файлов может быть одно и тоже, а дата/время различаться и тогда один из них (более свежий) будет выделен, и он, кстати, может оказаться как в активном, так и в целевом каталоге.
Кроме того, возможна ситуация, когда имя у файлов может быть одно и тоже, дата/время тоже совпадает, а размер файлов разный и тогда будут выделены все такие файлы (как в активном, так и в целевом каталоге).

hjiapex wrote:
Как теперь мне реализовывать сложное копирование списками?
Понять бы, о чём речь…
Back to top
View user's profile Send private message
hjiapex



Joined: 16 Apr 2015
Posts: 35

Post (Separately) Posted: Thu Apr 16, 2015 20:38    Post subject: Reply with quote

Flasher
Как поправить скрипт, что бы он сравнивал файлы, даже если я нажал ctrl+b и вывел все файлы (из подкаталогов) списком?
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10235
Location: Россия, Саратов

Post (Separately) Posted: Thu Apr 16, 2015 21:19    Post subject: Reply with quote

hjiapex
Об оверквотинге уже неоднократно говорили. Пока сделать выводы. Про ссылки на скрипты прямым текстом сказано в памятке к подфоруму. Замечание. Выше (после моей правки) показано, как подобные вещи должны выглядеть нормально. Хотя на самом деле в этом сообщении надобности вообще нет: про показ файлов без подкаталогов (только там Ctrl+B или Shift+Ctrl+B, а не Shift+B) сказано чуть выше, проблема вполне ясна с первого раза без повторов.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
hjiapex



Joined: 16 Apr 2015
Posts: 35

Post (Separately) Posted: Thu Apr 16, 2015 22:48    Post subject: Reply with quote

Avada
Если вы под оверквотингом подразумеваете "цитату" ок, больше не буду ее использовать. А цитировал я, в надежде, что человек, который писал скрипт, быстрее придет в тему и отпишется.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Apr 17, 2015 00:16    Post subject: Reply with quote

Поскольку такая задача требует дополнительных ресурсов, то предыдущий вариант я, пожалуй, оставлю.
Code:
'===================================================================
' Выделение в панелях одноимённых файлов и/или папок

' Файлы могут быть выделены в т.ч. в режиме без подкаталогов

' Параметры: "%P" "%T" <файлы/каталоги/всё: 1/2/3>

' Автор: Flasher ©
'====================== Путь к утилите 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
If P = T Then CreateObject("WScript.Shell")._
Run TCFS2 & " /ef tcm(536)" : WScript.Quit
Select Case C : Case 1 Tp = 192 : Case 2 Tp = 160 : Case 3 Tp = 224 : End Select
Set FSO  = CreateObject("Scripting.FileSystemObject")
Set Dict = CreateObject("Scripting.Dictionary")
Set Col1 = CreateObject("Scripting.Dictionary")
Set Col2 = CreateObject("Scripting.Dictionary")
Set Col3 = CreateObject("Scripting.Dictionary")
Set ShA  = CreateObject("Shell.Application")
Recursion P : Test = 1 : Recursion T

If Col1.Count And Col2.Count Then
  With CreateObject("WScript.Shell")
    TempFile = ShA.NameSpace(.ExpandEnvironmentStrings("%TEMP%"))._
    Self.Path & "\" & FSO.GetTempName
    FSO.CreateTextFile(TempFile, 1, True).Write vbCr & Join(Col1.Keys, vbNewLine)
    .Run "%comspec% /c clip <""" & TempFile & """",0,True
    .Run TCFS2 & " /ef msg($0B,0) tcm(2033,0) send({TAB})",,True
    FSO.CreateTextFile(TempFile, 1, True).Write vbCr & Join(Col2.Keys, vbNewLine)
    .Run "%comspec% /c clip <""" & TempFile & """",0,True
    .Run TCFS2 & " /ef tcm(2033,0) send({TAB}) msg($0B,1) redraw()",,True
    .Run "%comspec% /c type|clip",0
  End With : FSO.DeleteFile TempFile, 1
End If

Sub Recursion(Fd)
  Set Items = ShA.NameSpace(Fd).Items : Items.Filter Tp, "*"
  If Test <> 1 Then
    For Each F in Items
      Dict.Add "\" & Mid(F.Path, Len(P) + 1) & "\", ""
    Next
  Else
    For Each F in Items
      Mass = Filter(Dict.Keys, "\" & F & "\")
      If Ubound(Mass) >= 0 Then
        S = "" : N = 2 : If C > 1 And F.IsFolder Then N = 1 : S = "\"
        If Not Col3.Exists(CStr(F)) Then
          For Each Fl in Mass : Col1.Add Mid(Fl, 2, Len(Fl) - N), "" : Next
          Col3.Add CStr(F), ""
        End If : Col2.Add Mid(F.Path, Len(T) + 1) & S, ""
      End If
    Next
  End If
  If C = 1 Then
    Items.Filter 160, "*"
    For Each F in Items
      If InStr(F.Type, "ZIP") = 0 Then Recursion F.Path
    Next
  End If
End Sub


hjiapex wrote:
А цитировал я, в надежде, что человек, который писал скрипт, быстрее придет в тему и отпишется.
Скорее наоборот. Меня раздражает избыточное цитирование. И повторное обращение в столь небольшом промежутке времени никак на моём внимании отразиться не может.
А тут Shift не помешало бы на Ctrl исправить.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Sat Apr 18, 2015 08:24; edited 4 times in total
Back to top
View user's profile Send private message
hjiapex



Joined: 16 Apr 2015
Posts: 35

Post (Separately) Posted: Fri Apr 17, 2015 00:19    Post subject: Reply with quote

Flasher
По поводу скрипта, новый должен уже и с ctrl+b сравнивать?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Apr 17, 2015 00:22    Post subject: Reply with quote

hjiapex
Читаем шапку. Иначе какой смысл было допиливать?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
hjiapex



Joined: 16 Apr 2015
Posts: 35

Post (Separately) Posted: Fri Apr 17, 2015 00:27    Post subject: Reply with quote

Flasher
Я в том смысле, что ошибку выдает. Скинул бы скрин, да форум не разрешает. В общем Код ошибки 800A01C9. Строка 49 Символ 9 Ошибка: Запись уже связана с элементом данного семейства. Я понял причину. Если у меня в окне, где показан список без подкаталогов (ctrl+b) повторяются файлы (к примеру в 2х разных папках одного каталога были одинаковые файлы, и в этом общем списке есть 2 файла с одинаковым именем), то программа выдает ошибку.


Last edited by hjiapex on Fri Apr 17, 2015 00:41; edited 1 time in total
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Apr 17, 2015 00:40    Post subject: Reply with quote

А разве в памятке написано, что тут скриншоты нужно скидывать? Советую внимательно ознакомиться.

Касаемо ошибки. По идее быть не должно. Прошу скинуть список полных путей папки пассивной панели. Если он большой, то спрятать в спойлер (тег [cut]).
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
hjiapex



Joined: 16 Apr 2015
Posts: 35

Post (Separately) Posted: Fri Apr 17, 2015 00:43    Post subject: Reply with quote

Flasher
Вы меня конечно простите, я пришел с обычных форумов, а тут слишком высокие требования к поведению на форуме.
По теме - я не понимаю, скинуть список полных путей папки пассивной панели? Можно для меня НЕ УМНОГО разжевать данное предложение?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Apr 17, 2015 01:00    Post subject: Reply with quote

hjiapex
Требования не столько высокие, сколько оптимальные для восприятия и поиска. Скопипастить сообщение в тег цитаты из окна куда быстрее, чем колупаться с хостингом картинок.
Как сюда скинуть список? Ну, это ОЧЕНЬ сложно. Smile В режиме без подкаталогов выделить всё по Ctrl+A, выполнить команду "Копировать полные имена файлов" и вставить сюда под спойлер.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
hjiapex



Joined: 16 Apr 2015
Posts: 35

Post (Separately) Posted: Fri Apr 17, 2015 01:02    Post subject: Reply with quote

 Hidden text


Last edited by hjiapex on Fri Apr 17, 2015 02:10; edited 1 time in total
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Apr 17, 2015 02:07    Post subject: Reply with quote

Прошу отредактировать пост с заменой на отсортированный список по [=tc.Путь][=tc.Полное имя].
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.


Last edited by Flasher on Fri Apr 17, 2015 02:24; edited 1 time in total
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8, 9  Next
Page 4 of 9

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group