Переименование с периодическим сбросом счётчика

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

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

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

Сообщение Flasher »

Staniclaw
Я полагаю, мы тут не справочные материалы разбираем, поскольку и в том случае иные плагины не понадобились бы.
Есть выражение [P], которое идёт первым в списке, вызываемом кнопкой + справа от [N] Имя.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Staniclaw
Сообщения: 533
Зарегистрирован: Вс дек 12, 2010 15:37
Откуда: Ташкент

Сообщение Staniclaw »

Flasher
Да, так лучше. Просто я сейчас настраивал ИГП с этим плагином, и его поля были перед глазами. А это упустил из виду. :oops:
Вечному двигателю -- вечные тормоза!..
sibirnik
Сообщения: 84
Зарегистрирован: Вт июн 07, 2016 07:33

Сообщение sibirnik »

Flasher
R/S. Скрипт от Batya я попробовал по вашей ссылке "есть тема" и он работает, так, как я указал выше. Я не не знаю, как дать Вам ссылку на скрипт от Batya.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

sibirnik
Я не просил каких-либо ссылок. Прочтите мои вопросы и дайте ответ.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

sibirnik
R/S. — это P.S.? :) И вы не находите, что пытаться дать ссылку человеку, который выше сам дал ссылку на тему с этим скриптом, мягко говоря, странно? А как даются ссылки, посмотрите по другим сообщениямм форума, И к кнопкам в окне быстрого ответа приглядитесь внимательнее.

Перенесено в тему, где изначально должно было находиться.
Даже самая богатая фантазия
Не представит себе наши безобразия.
sibirnik
Сообщения: 84
Зарегистрирован: Вт июн 07, 2016 07:33

Сообщение sibirnik »

Flasher
По вашим вопросам отвечаю: Да обрабатывать, сортировать и переносить никуда ничего не надо, Искать тем более. Пример: у меня три каталога с именами кат1, кат2, кат3 и в каждом из них допустим куча фото с разными именами. Мне нужно в каждом отдельной каталоге присвоить имя каждому фото по имени отдельного каталога(кат1_0, кат1_1 и так далее от числа фото в этом каталоге от 0 до ....)( фоток в каждом каталоге может быть разное количество) и так в каждом каталоге. Извините за каламбур.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

sibirnik
Я ничего про перенос не писал. Сортировка - это не рассортировка, это порядок следования рассматриваемых объектов.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sibirnik
Сообщения: 84
Зарегистрирован: Вт июн 07, 2016 07:33

Сообщение sibirnik »

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

Сообщение Flasher »

sibirnik
Вы не понимаете. Заглядывая в папку, скрипт понятия не имеет, какая установлена файловая система и какой там принцип сортировки (алфавитная, обратная ей, по типу или ещё какая).
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sibirnik
Сообщения: 84
Зарегистрирован: Вт июн 07, 2016 07:33

Сообщение sibirnik »

Flasher
Вот спасибо!!! теперь я понял о чём Вы!!!Алфавитный порядок сортировки у меня там.

Добавлено спустя 55 секунд:

по имени в ТС
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

sibirnik
Тогда так. Если есть файлы с разными расширениями, то для каждой группы свой счётчик.

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

'========================================================
' Переименовать файлы внутри выбранных папок по их именам
' при включении алфавитной сортировки (по умолч. прямой)

' Параметры: %WL
' необязат.: <фильтр-список расширений>
'            <cортировка обратная: 1>
' Примеры:   %WL
'            %WL *.jpg;*.jpeg 1
'========================================================
With WSH.Arguments
  C = .Count : If C = 0 Then WSH.Quit
  List = .Item(0) : If C > 1 Then Filt = .Item(1)
  If Filt = "" Then Filt = "*.*"
  If C = 2 Then Sort = .Item(2)
End With : Set ShA = CreateObject("Shell.Application")
Set Lst = CreateObject("System.Collections.ArrayList")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Reg = New RegExp : Reg.IgnoreCase = True
Set Rgx = New RegExp : Rgx.Global = True
Rgx.Pattern = "([()+.[^{$])"

With FSO.OpenTextFile(List,,,-1)
  Do : P = Trim(.ReadLine)
    If FSO.FolderExists(P) Then
      Set Path  = ShA.NameSpace(P)
      Set Items = Path.Items
      Items.Filter 73952, Filt
      If Items.Count Then
        For Each F in Items
          If FSO.FileExists(F.Path) Then Lst.Add CStr(F)
        Next : i = 1 : Lst.Sort : If Sort = 1 Then Lst.Reverse
        For Each F in Lst
          Ext = FSO.GetExtensionName(F)
          Reg.Pattern = "^" & Rgx.Replace(_
          Path.Title, "\$1") & " \(\d+\)\.?" & Ext & "$"
          If Not Reg.Test(F) Then
            If Len(Ext) Then Ext = "." & Ext
            FP = P & Path.Title : FN = FP & " (" & i & ")" & Ext
            While FSO.FileExists(FN) Or FSO.FolderExists(FN)
              i = i + 1 : FN = FP & " (" & i & ")" & Ext
            Wend
            FSO.GetFile(P & F).Name = Path.Title & " (" & i & ")" & Ext
          End If
        Next : Lst.Clear
      End If
    End If
  Loop Until .AtEndOfStream : .Close
End With
MsgBox Space(18) & "Выполнено!", 4160,_
" Переименование файлов внутри папок      "
P.S.: И опять же - не нужно пренебрегать правилами языка (заглавными и точками).
Последний раз редактировалось Flasher Вс янв 29, 2017 14:22, всего редактировалось 8 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

sibirnik
В девятой версии TC можно воспользоваться такой кнопкой

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

TOTALCMD#BAR#DATA
cm_DirBranchSel,cm_SelectAllFiles,cm_MultiRenameFiles,cm_RereadSource

WCMICONS.DLL,46
Переименовать файлы в выбранном


-1
В диалоге переименования в поле маски для имени файла установить [P] вместо [N], а потом подтвердить автоматическое переименование файлов (после предупреждения об одинаковых именах файлов). Формат счётчика будет несколько отличным от запрошенного.
Предполагается, что файлы внутри каждого каталога имеют одно и то же расширение. В противном случае для каждого расширения будет отдельный счётчик.
sibirnik
Сообщения: 84
Зарегистрирован: Вт июн 07, 2016 07:33

Сообщение sibirnik »

Flasher
От всей широты Сибирской души Огромное спасибо! Вот это мне и было нужно.

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

sa
Про Ctrl+M, что и делает ваша кнопка я знаю - это не то, что мне было надо. Flasher решил мою просьбу.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

sibirnik писал(а):это не то, что мне было надо
Формат счётчика не подошёл или что-то другое?
sibirnik
Сообщения: 84
Зарегистрирован: Вт июн 07, 2016 07:33

Сообщение sibirnik »

sa
Другое. (N-количество каталогов с N-количеством в них файлов - нужно переименовать эти файлы по имени каталога с добавлением счётчика, если файлов N-количество) Имена каталогов разные. По предложенной Вами кнопке по одному можно сделать, а если 5000 каталогов...???? Вопрос закрыт, так как он решён.
Ответить