Копирование с переименовыванием по счетчику

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

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

Singlelol
Сообщения: 8
Зарегистрирован: Пт июн 05, 2020 15:56

Сообщение Singlelol »

Нет. Так же по каталогам, только с другим именем строго латинский и цифры.

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

Сообщение Flasher »

Singlelol писал(а):только с другим именем строго латинский и цифры.
a-z№№ вместо выбранных папок. Так? Какой лимит у нумерации? 99? Если папок станет больше лимита z<max>, куда дальше двигаться?

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

Сообщение Avada »

Продолжайте. Отделено из "Групового переименования" в более подходящую тему.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Singlelol
Сообщения: 8
Зарегистрирован: Пт июн 05, 2020 15:56

Сообщение Singlelol »

Flasher писал(а):Какой лимит у нумерации? 99?
Да.
Flasher писал(а):Если папок станет больше лимита z<max>, куда дальше двигаться?
aa01
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

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

'================================ VBS ================================
' Копировать выбранные папки с переименованием по шаблону [a-z][01-99]
' + Отчёт по шаблону: <исходный относительный путь к файлу> </новый>

' Условие:   пустое поле «Путь запуска:»

' Параметры: %WF "<относительный путь назначения>" "имя лога"
' Пример:    %WF iblock Log.txt
'=====================================================================
Option Explicit
Dim A, T, Sym, REx, TF, LF, Items, Nm, Fd, n, c, x, F, NP
Set A = WSH.Arguments: If A.Count Then T = A(1) Else WSH.Quit
Sym = Split("a b c d e f g h i j k l m n o p q r s t u v w x y z")
Set REx = New RegExp : REx.Pattern = "([a-z]+)(\d+)"

With CreateObject("Scripting.FileSystemObject")
  Set TF = .OpenTextFile(A(0),,,-1)
  Set LF = .OpenTextFile(A(2),8,1,-1)
  With CreateObject("Shell.Application").NameSpace(.GetAbsolutePathName(""))
    .NewFolder T : Set Items = .ParseName(T).GetFolder.Items
  End With
  Items.Filter 8224, "*"
  If Items.Count Then
    Set Nm = REx.Execute(Items.Item(Items.Count - 1))(0)
    c = Nm.SubMatches(0) : x = Len(c) : c = Asc(c) - 97
    n = CInt(Nm.SubMatches(1))
    If c = 26 And n = 99 Then x = x + 1
    If n < 99 Then n = n + 1 Else n = 1 : c = c + 1
  Else c = 0 : n = 1 : x = 1 End If
  Set REx = Nothing : Set Items = Nothing
  Do: Fd = TF.ReadLine
    If Right(Fd, 1) <> "\" Then Exit Do
    NP = .BuildPath(T, String(x, Sym(c)) & Right("0" & n, 2))
    .GetFolder(Fd).Copy NP : If c = 26 And n = 99 Then x = x + 1
    If n < 99 Then n = n + 1 Else n = 1 : c = c + 1
    For Each F In .GetFolder(Fd).Files
      LF.WriteLine Fd & F.Name & " /" & Replace(NP, "\", "/") & "/" & F.Name
    Next
  Loop Until TF.AtEndOfStream : TF.Close : LF.Close
End With
CreateObject("WScript.Shell").Popup "  Выполнено!", 2, " Копирование каталогов     ", 4160
Последний раз редактировалось Flasher Ср июн 24, 2020 18:23, всего редактировалось 6 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Singlelol
Сообщения: 8
Зарегистрирован: Пт июн 05, 2020 15:56

Сообщение Singlelol »

Flasher писал(а):
Огонь! Работает.

Не будет сильной наглостью, если попрошу добавить возможность указания начальной точки?

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

Сообщение Flasher »

Singlelol писал(а):возможность указания начальной точки?
Это не наш метод. Наш метод — автоматика. ;) Обновил код.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Singlelol
Сообщения: 8
Зарегистрирован: Пт июн 05, 2020 15:56

Сообщение Singlelol »

Flasher писал(а):Это не наш метод. Наш метод — автоматика. ;) Обновил код.
Топ! :oops: не разобрался как делать путь длиннее по типу upload/iblock, но в остальном высший пилотаж. Вы очень помогли!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Singlelol писал(а):upload/iblock
Тут как раз с бэкслешем '\', как полагается. ;)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Singlelol
Сообщения: 8
Зарегистрирован: Пт июн 05, 2020 15:56

Сообщение Singlelol »

Flasher писал(а):Тут как раз с бэкслешем '\', как полагается. ;)
Сработало. Странно, а вроде ошибку выдавал. Может я что-то напутал.
Ответить