Групповое переименование

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

Dimsok
Главное в этом способе – это автопереименование, выполняемое тоталом 9 версии при конфликте имён в ИГП. В остальном возможны варианты.
Аватара пользователя
Чиполлино
Сообщения: 62
Зарегистрирован: Пт дек 22, 2017 23:44
Откуда: Орёл

Сообщение Чиполлино »

Flasher писал(а):Можно брать mp3-теги в качестве данных полей контентных плагинов, поддерживаемых ID2/3 (таких немало), и ими переименовывать.
Я хочу, чтобы ТС проанализировал текстовый документ, список имен файлов в папке, и затем сам принял решение о присвоении подходящего имени файлу. Либо дал мне право выбора из нескольких, по мнению ТС, подходящих имен.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Какое это имеет отношение к цитате?
Чтобы что-то анализировать, нужно сперва предоставить алгоритм этого анализа. Никакого выбора вариантов сам ТС не предоставляет.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Чиполлино
Сообщения: 62
Зарегистрирован: Пт дек 22, 2017 23:44
Откуда: Орёл

Сообщение Чиполлино »

Flasher писал(а):Какое это имеет отношение к цитате?
Вы ответили в закрытой теме этим сообщением.
Flasher писал(а):Чтобы что-то анализировать, нужно сперва предоставить алгоритм
Алгоритм Батенька, создайте Вы. На все случаи. И это не дерзость -увольте. Используя таблицу транслитов, теги, какую то базу данных, состоящую из десяти миллиардов пунктов, ну и прочий подсобный материал. Я - пешка. Мое дело лишь попросить решить проблему. Допустим, список всех песен группы Машина Времени найти легко, и преобразовать его по своему вкусу. А как ТС поймет, что файл с именем Новый поворот, необходимо переименовать в Поворот (из списка), а Vagonniy Spory и Ваг.спор - в Вагонные споры - это Вам мозговать. При нескольких возможных вариантах переименования, ТС должен предложить их, предоставив выбор пользователю (Например в всплывающем окне). Но это должно происходить в крайних случаях, когда например не в имени файла, ни в теге, нет ничего полностью сопоставимого с именем из списка. Во всех постах, на которые Вы мне дали ссылки, решение проблемы лишь частичное. Я ставлю задачу глобально. И не понимаю, почему тему закрыли.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Дoбрейшей души ... писал(а):Вы ответили в закрытой теме этим сообщением.
Ссылкой на него. Она была дана на вариант решения, который вы сейчас даже не удосужились в части годности прокомментировать.
Дoбрейшей души ... писал(а):Алгоритм Батенька, создайте Вы. На все случаи. И это не дерзость -увольте.
Указание, что мне делать, — не что иное, как дерзость. И я могу, если захочу, записать только скриптовый алгоритм, а описать алгоритм (критерии) сопоставления целевых имён из списка с потенциальными именами объектов должен как раз вопрошающий, хотя бы на уровне предоставления этих соответствий. Невозможно создать что-то из ничего.
Дoбрейшей души ... писал(а):Используя таблицу транслитов, теги, и прочий подсобный материал. Я - пешка. Мое дело лишь попросить решить проблему.
Если не приложите усилий по уже существующим на форуме материалам, то всё на этой просьбе и закончится, хотя бы потому, что работа с тегами в ИГП описана в справке.
Дoбрейшей души ... писал(а):А как ТС поймет, что файл с именем Новый поворот, необходимо переименовать в Поворот (из списка), или Vagonniy Spory - в Вагонные споры - это Вам мозговать..
В отношении ИГП я уже писал как. Только в рамках упорядочивания исходников с именами из списка.
Дoбрейшей души ... писал(а):При нескольких возможных вариантах переименования
Вот в том числе для таких вещей и требуется алгоритм. На паре примеров далеко не уедешь. Телепатия тут зависает.
Дoбрейшей души ... писал(а):Во всех постах, на которые Вы мне дали ссылки, проблема затрагивалась лишь косвенно, частично. Я ее ставлю глобально. И не понимаю, почему тему закрыли.
Во-первых, я дал ссылку только на один пост (как раз с приведённой цитатой), все остальные — на топики. А, во-вторых, глобальная постановка не противоречит ряду заголовков уже существующих тем, что и объясняет закрытие.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Что поменять здесь:
http://forum.wincmd.ru/viewpost.php?p=118491

Чтобы имя архива оставалось прежним, но перед его расширением дописывалось расширение упакованного файла.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

[cut="Не проверял:"]

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

'•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
' Добавить в имена выбранных архивов отсутствующие расширения вложенных одиночных файлов
' Условие: Наличие инсталляции системного аддона TC4Shell
' Страница загрузки: http://www.tc4shell.com/ru/download/
' Параметр: %WL
'•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
If WSH.Arguments.Count = 0 Then WSH.Quit
Set Rgx = New RegExp
Set ShA = CreateObject("Shell.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
Rgx.IgnoreCase = True : Rgx.Pattern = "^([A-z\d]+_|00[01]|7z(|ip)|a(01|rj?|rduboy|p" &_
"[km]|sd|zw2|zz)|b(64|doc|in|oz|ps|up|z(|ip)2?)|c(ab|apx|b[7crtz]|bds|h[iqmw]|off|o" &_
"mpPkg_Hauptwerk_rar|pgz|pio|ramfs|rx)|d(32|(a|ock)zip|eb|esktop|ylib|mg|mm[ptx]|o[c"&_
"t][mx]?|p[st]|z)|e(cs|dz|f[iw]|rx|sd|pub|tt?|xe|xt[234]?)|fat|g(adgeprj|bp|g|(|nu)t"&_
"ar|nm|numeric|z(|ip?)2?)|(graph|ht|p)mlz|h(cl|fsx?|mxz|tb|x[iqrsw])|i(5[sz]|as|hex|"&_
"m[agz]|p[agk]?|psw|s[ox]|ta)|jar|jgz|l(i[bt]|ibzip|z([oh]?|ma)|ha|qm|xf)|m(br|ct|cg"&_
"ame|world|ht(ml)?|pz(ip)?|s[ioptu]|slz|st14|u[bi])|n(ex|fl|otebook|(si|tf)s|th)|o(b"&_
"[bj]|d[bfgpst]|ebzip|ex|nepkg|rb|sz|t[pst]|va|z)|p(ax|bi[tx]|cv|et|i[mz]|k[34g]|mv|"&_
"[op]t[xm]?|p[as][mx]?|p?md|r[dsvx]|ro[45]x|sz|ub)|qcow(|2c?)|quiz|quox|[rs]00|r(0|a"&_
"r5?|pm|p9|z)|s(7z|cap|[dtx]c|[dtx]w|d[adz]|f[sx]|l[ex]|m[fz]|nb|ob|quashfs|t[di]|ui"&_
"te|wm|x[dim])|t(ar(dist)?|[abglx]z|bs|bz2|g|hmx|lb|lzma|wz(ip)?|xtz)|u(3p|box|deb|d"&_
"f|efif|os|seq|ue)|v(di|hd|i[mp]|mdk|oca|or|s(d|ix?|s[mx])|ym)|w(b?a|bk|db|ebz|im|p["&_
"st]|sb|w[dps])|x(apk|ar|l(am?|s[bmx]?|t[mx]?|r|w)|p[is]|zm?|xe)|z(ad|i?|ipx?|m9|pi))$"

With FSO.OpenTextFile(WSH.Arguments(0),,,-1)
  Do : F = .ReadLine : Ext = FSO.GetExtensionName(F)
    If FSO.FileExists(F) And Rgx.Test(Ext) Then
      Set Arch = ShA.NameSpace(F)
      If Arch.Self.IsFolder Then
        Set Items = Arch.Items : Items.Filter 73952, "*"
        If Items.Count = 1 Then
          Set N = Items.Item(0) : P = N.Parent.Self.Parent.Self.Path & "\"
          c = 0 : BN = FSO.GetBaseName(F) : Ex = FSO.GetExtensionName(N.Path)
          If Len(Ex) And FSO.GetExtensionName(BN) <> Ex Then
            Nm = BN & "." & Ex & "." & Ext
            While FSO.FileExists(P & Nm) Or FSO.FolderExists(P & Nm)
              c = c + 1 : Nm = BN & "." & Ex & " (" & c & ")." & Ext
            Wend : FSO.GetFile(F).Name = Nm
          End If
        End If
      End If
    End If
  Loop Until .AtEndOfStream : .Close
End With
[/cut]
Последний раз редактировалось Flasher Вс янв 14, 2018 03:37, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Line 27
Char 6
Object required: Reg
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

А. Точно. Заменил на Rgx.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Dimsok
Сообщения: 664
Зарегистрирован: Вс авг 17, 2014 00:45

Сообщение Dimsok »

Спасибо.
BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

Flasher, опять я по по скрипту добавления описаний к именам сходной группы без описаний.
Скрипт не переименовывает эти файлы без описаний:

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

tumblr_omx5koea1K1tlnximo1_1280.jpg
tumblr_omx5koea1K1tlnximo2_1280.jpg
tumblr_omx5koea1K1tlnximo3_1280.jpg
tumblr_omx5koea1K1tlnximo4_r1_1280 spacegames - reblog Mass Effect and Dead Space.jpg
tumblr_omx5koea1K1tlnximo5_1280.jpg
tumblr_omx5koea1K1tlnximo6_1280.jpg
tumblr_omx5koea1K1tlnximo7_1280.jpg
tumblr_omx5koea1K1tlnximo8_1280.jpg
tumblr_omvmox3Cbx1tlnximo1_r1_1280 moviedetails - reblog best moments from Avatar.jpg
tumblr_omvmox3Cbx1tlnximo2_r1_1280.jpg
tumblr_omvmox3Cbx1tlnximo3_r1_1280.jpg
tumblr_omvmox3Cbx1tlnximo4_r1_1280.jpg
tumblr_omvmox3Cbx1tlnximo5_r1_1280.jpg
tumblr_omvmox3Cbx1tlnximo6_r1_1280.jpg
tumblr_omvmox3Cbx1tlnximo7_r1_1280.jpg
tumblr_omvmox3Cbx1tlnximo8_r1_1280.jpg
tumblr_omvmox3Cbx1tlnximo9_r1_1280.jpg
tumblr_omvmox3Cbx1tlnximo10_r1_1280.jpg
Проблема в _r1. Еще есть и _r2,_r3 в именах других файлов. Кроме этого больше нет отличий. Не могли бы вы адаптировать скрипт чтобы мог переименовать такие файлы как такие в примере и при этом мог бы продолжать как раньше переименовывать файлы, которые не имеют _r1,_r2,_r3 в именах? Спасибо!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BeardFury78
Не уверен в том, какой нужен конечный результат, так что 12-13 строки на пробу:

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

Set Rgx = New RegExp : Rgx.Pattern = "^[^ ]+?\d+(_r\d+)?\d+\.[A-z]{1,4}$"
Set Reg = New RegExp : Reg.Pattern = "^([^ ]+?)\d+(_r\d+)?_\d+( .+\.)[A-z]{1,4}$"
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

Flasher
Не переименовывалось так как нужно. Теперь стало так:

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

tumblr_omvmox3Cbx1tlnximo1_r1_1280 moviedetails - reblog best moments from Avatar.jpg
tumblr_omvmox3Cbx1tlnximo2_r1_1280_r1jpg
tumblr_omvmox3Cbx1tlnximo3_r1_1280_r1jpg
tumblr_omvmox3Cbx1tlnximo4_r1_1280_r1jpg
tumblr_omvmox3Cbx1tlnximo5_r1_1280_r1jpg
tumblr_omvmox3Cbx1tlnximo6_r1_1280_r1jpg
tumblr_omvmox3Cbx1tlnximo7_r1_1280_r1jpg
tumblr_omvmox3Cbx1tlnximo8_r1_1280_r1jpg
tumblr_omvmox3Cbx1tlnximo9_r1_1280_r1jpg
tumblr_omvmox3Cbx1tlnximo10_r1_1280_r1jpg
tumblr_omx5koea1K1tlnximo1_1280_r1jpg
tumblr_omx5koea1K1tlnximo2_1280_r1jpg
tumblr_omx5koea1K1tlnximo3_1280_r1jpg
tumblr_omx5koea1K1tlnximo4_r1_1280 spacegames - reblog Mass Effect and Dead Space.jpg
tumblr_omx5koea1K1tlnximo5_1280_r1jpg
tumblr_omx5koea1K1tlnximo6_1280_r1jpg
tumblr_omx5koea1K1tlnximo7_1280_r1jpg
tumblr_omx5koea1K1tlnximo8_1280_r1jpg
А конечный результат нужен вот такой:

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

tumblr_omx5koea1K1tlnximo1_1280 spacegames - reblog Mass Effect and Dead Space.jpg 
tumblr_omx5koea1K1tlnximo2_1280 spacegames - reblog Mass Effect and Dead Space.jpg 
tumblr_omx5koea1K1tlnximo3_1280 spacegames - reblog Mass Effect and Dead Space.jpg 
tumblr_omx5koea1K1tlnximo4_r1_1280 spacegames - reblog Mass Effect and Dead Space.jpg 
tumblr_omx5koea1K1tlnximo5_1280 spacegames - reblog Mass Effect and Dead Space.jpg 
tumblr_omx5koea1K1tlnximo6_1280 spacegames - reblog Mass Effect and Dead Space.jpg 
tumblr_omx5koea1K1tlnximo7_1280 spacegames - reblog Mass Effect and Dead Space.jpg 
tumblr_omx5koea1K1tlnximo8_1280 spacegames - reblog Mass Effect and Dead Space.jpg 
tumblr_omvmox3Cbx1tlnximo1_r1_1280 moviedetails - reblog best moments from Avatar.jpg 
tumblr_omvmox3Cbx1tlnximo2_r1_1280 moviedetails - reblog best moments from Avatar.jpg 
tumblr_omvmox3Cbx1tlnximo3_r1_1280 moviedetails - reblog best moments from Avatar.jpg 
tumblr_omvmox3Cbx1tlnximo4_r1_1280 moviedetails - reblog best moments from Avatar.jpg 
tumblr_omvmox3Cbx1tlnximo5_r1_1280 moviedetails - reblog best moments from Avatar.jpg 
tumblr_omvmox3Cbx1tlnximo6_r1_1280 moviedetails - reblog best moments from Avatar.jpg 
tumblr_omvmox3Cbx1tlnximo7_r1_1280 moviedetails - reblog best moments from Avatar.jpg 
tumblr_omvmox3Cbx1tlnximo8_r1_1280 moviedetails - reblog best moments from Avatar.jpg 
tumblr_omvmox3Cbx1tlnximo9_r1_1280 moviedetails - reblog best moments from Avatar.jpg 
tumblr_omvmox3Cbx1tlnximo10_r1_1280 moviedetails - reblog best moments from Avatar.jpg
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BeardFury78
Пардон. Забыл кое-что. В конце 26 строки 1 сменить на 2.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
BeardFury78
Сообщения: 213
Зарегистрирован: Чт авг 25, 2016 05:24

Сообщение BeardFury78 »

Flasher
Теперь переименовалось как нужно! Большое спасибо.
Ответить