Переименование с периодическим сбросом счётчика
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3, 4, 5, 6  Next  :| |:
Total Commander -> Автоматизация Total Commander

#46:  Author: FlasherLocation: Москва PostPosted: Sat Jan 28, 2017 13:21
    —
Staniclaw
Я полагаю, мы тут не справочные материалы разбираем, поскольку и в том случае иные плагины не понадобились бы.
Есть выражение [P], которое идёт первым в списке, вызываемом кнопкой + справа от [N] Имя.

#47:  Author: StaniclawLocation: Ташкент PostPosted: Sat Jan 28, 2017 13:30
    —
Flasher
Да, так лучше. Просто я сейчас настраивал ИГП с этим плагином, и его поля были перед глазами. А это упустил из виду. Embarassed

#48:  Author: sibirnik PostPosted: Sat Jan 28, 2017 13:35
    —
Flasher
R/S. Скрипт от Batya я попробовал по вашей ссылке "есть тема" и он работает, так, как я указал выше. Я не не знаю, как дать Вам ссылку на скрипт от Batya.

#49:  Author: FlasherLocation: Москва PostPosted: Sat Jan 28, 2017 13:37
    —
sibirnik
Я не просил каких-либо ссылок. Прочтите мои вопросы и дайте ответ.

#50:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Jan 28, 2017 13:44
    —
sibirnik
R/S. — это P.S.? Smile И вы не находите, что пытаться дать ссылку человеку, который выше сам дал ссылку на тему с этим скриптом, мягко говоря, странно? А как даются ссылки, посмотрите по другим сообщениямм форума, И к кнопкам в окне быстрого ответа приглядитесь внимательнее.

Перенесено в тему, где изначально должно было находиться.

#51:  Author: sibirnik PostPosted: Sat Jan 28, 2017 14:04
    —
Flasher
По вашим вопросам отвечаю: Да обрабатывать, сортировать и переносить никуда ничего не надо, Искать тем более. Пример: у меня три каталога с именами кат1, кат2, кат3 и в каждом из них допустим куча фото с разными именами. Мне нужно в каждом отдельной каталоге присвоить имя каждому фото по имени отдельного каталога(кат1_0, кат1_1 и так далее от числа фото в этом каталоге от 0 до ....)( фоток в каждом каталоге может быть разное количество) и так в каждом каталоге. Извините за каламбур.

#52:  Author: FlasherLocation: Москва PostPosted: Sat Jan 28, 2017 14:08
    —
sibirnik
Я ничего про перенос не писал. Сортировка - это не рассортировка, это порядок следования рассматриваемых объектов.

#53:  Author: sibirnik PostPosted: Sat Jan 28, 2017 14:10
    —
Flasher
порядок следования такой какой и был до начала переименования.

#54:  Author: FlasherLocation: Москва PostPosted: Sat Jan 28, 2017 14:17
    —
sibirnik
Вы не понимаете. Заглядывая в папку, скрипт понятия не имеет, какая установлена файловая система и какой там принцип сортировки (алфавитная, обратная ей, по типу или ещё какая).

#55:  Author: sibirnik PostPosted: Sat Jan 28, 2017 14:20
    —
Flasher
Вот спасибо!!! теперь я понял о чём Вы!!!Алфавитный порядок сортировки у меня там.

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

по имени в ТС

#56:  Author: FlasherLocation: Москва PostPosted: Sat Jan 28, 2017 15:10
    —
sibirnik
Тогда так. Если есть файлы с разными расширениями, то для каждой группы свой счётчик.
Code:
'========================================================
' Переименовать файлы внутри выбранных папок по их именам
' при включении алфавитной сортировки (по умолч. прямой)

' Параметры: %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.: И опять же - не нужно пренебрегать правилами языка (заглавными и точками).


Last edited by Flasher on Sun Jan 29, 2017 15:22; edited 8 times in total

#57:  Author: sa PostPosted: Sat Jan 28, 2017 15:14
    —
sibirnik
В девятой версии TC можно воспользоваться такой кнопкой
Code:
TOTALCMD#BAR#DATA
cm_DirBranchSel,cm_SelectAllFiles,cm_MultiRenameFiles,cm_RereadSource

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


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

#58:  Author: sibirnik PostPosted: Sat Jan 28, 2017 15:26
    —
Flasher
От всей широты Сибирской души Огромное спасибо! Вот это мне и было нужно.

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

sa
Про Ctrl+M, что и делает ваша кнопка я знаю - это не то, что мне было надо. Flasher решил мою просьбу.

#59:  Author: sa PostPosted: Sat Jan 28, 2017 15:50
    —
sibirnik wrote:
это не то, что мне было надо

Формат счётчика не подошёл или что-то другое?

#60:  Author: sibirnik PostPosted: Sat Jan 28, 2017 16:01
    —
sa
Другое. (N-количество каталогов с N-количеством в них файлов - нужно переименовать эти файлы по имени каталога с добавлением счётчика, если файлов N-количество) Имена каталогов разные. По предложенной Вами кнопке по одному можно сделать, а если 5000 каталогов...???? Вопрос закрыт, так как он решён.



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3, 4, 5, 6  Next  :| |:
Page 4 of 6

Powered by phpBB © 2001, 2005 phpBB Group