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

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

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

SVM
Сообщения: 47
Зарегистрирован: Чт окт 16, 2008 16:36

Сообщение SVM »

Flasher
Новый скрипт работает, проверил на той же папке.
Flasher писал(а):Скрипт проверяет все файлы, в том числе те, что не были переименованы.
Для проверки переименовал все файлы в Total Commander. Я имел ввиду, что скрипт сначало переименовал все файлы в папке, а потом в этой же папке столько же по времени подсчитывал crc и окно появлялось после окончания процесса. То есть вначале работы скрипта в коммандной строке было hashfile.exe" "L:\Папка\НеПереименованный_файл.mp4, а потом hashfile.exe" "L:\Папка\Переименованный_файл.mp4
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

SVM
Новый или обновлённый? :wink:
Вообще - странно. Список файлов скрипт получает только до переименования, а после уже идёт по подпапкам. В чём именно могла быть причина, понять не могу. У меня такого не наблюдалось.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
SVM
Сообщения: 47
Зарегистрирован: Чт окт 16, 2008 16:36

Сообщение SVM »

Flasher
Обновлённый.
a-dasler
Сообщения: 11
Зарегистрирован: Пн май 04, 2015 10:56

Переименование в подкаталогах по порядку номеров

Сообщение a-dasler »

Прошу прощения, не нашел примера.
Есть папка с подкаталогами, там файлы типа 1.jpg, 10001.jpg, 10002.jpg...
Как во всех подкаталогах сразу переименовать просто по порядку номеров?
То есть 1.jpg, 2.jpg, 3.jpg....
Порядок устраивает, какой он сейчас, только имена файлов не устраивают.
Спасибо большое.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

a-dasler
В каждом подкаталоге по порядку или скопом?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
a-dasler
Сообщения: 11
Зарегистрирован: Пн май 04, 2015 10:56

Сообщение a-dasler »

Flasher писал(а):a-dasler
В каждом подкаталоге по порядку или скопом?
Да, нужно во всех подкаталогах по порядку. Чтобы в каждом подкаталоге начиналось с 1.jpg
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

А помимо нумерованных jpg-файлов там ничего нет?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
a-dasler
Сообщения: 11
Зарегистрирован: Пн май 04, 2015 10:56

Сообщение a-dasler »

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

Сообщение Flasher »

a-dasler
А почему нельзя просто удалить 1000 в именах?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
a-dasler
Сообщения: 11
Зарегистрирован: Пн май 04, 2015 10:56

Сообщение a-dasler »

Там есть и файлы 10012, 10013 и так далее. Но дело даже не в этом. Там так же есть во многих папках файлы 1.jpg вместе с 10001.jpg, и когда начинаешь переименовывать, то тотал выдает сообщение, что нельзя переименовать файлы, выделенные жирным Вот такой конфликт.
Ну то есть он не хочет делать из 10001.jpg файл 1.jpg, если таковой уже есть в папке. Но это очевидно как бы.

Изображение

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

Сообщение Flasher »

Пробуй:

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

'==========================================================
' Именовать файлы нумерацией в структуре активного каталога
' Файлы с базовым нумерным именем до 1000 не затрагиваются

' Условие: путь запуска - пустой
' Параметр (необязательный): <фильтр-список расширений>
' Пример: *.jpg;*.jpeg
'==========================================================
Set ShA = CreateObject("Shell.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count Then Filt = WScript.Arguments(0) Else Filt = "*.*"
With CreateObject("WScript.Shell")
  CD = .CurrentDirectory
  If CD = FSO.GetParentFolderName(WScript.ScriptFullName) Then WScript.Quit
  ForFolder CD : .SendKeys "^R"
End With

Sub ForFolder(Path)
  Set Items = ShA.NameSpace(Path).Items
  Items.Filter 64, Filt
  For Each F in Items
    Ext = FSO.GetExtensionName(F) : If Ext <> "" Then Ext = "." & Ext
    i = i + 1 : N = i & Ext : BN = FSO.GetBaseName(F)
    If IsNumeric(BN) Then
      If BN > 999 Then
        While FSO.FileExists(Path & "\" & N) Or FSO.FolderExists(Path & "\" & N)
          i = i + 1 : N = i & Ext
        Wend : F.Name = N
      End If
    ElseIf Not FSO.FileExists(Path & "\" & N) Then F.Name = N
    End If
  Next : Items.Filter 160, "*"
  For Each Fold in Items : ForFolder Fold.Path : Next
End Sub
Последний раз редактировалось Flasher Вт май 05, 2015 11:43, всего редактировалось 4 раза.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

a-dasler
Ctrl+B (или Ctrl+Shift+B для выделенных папок), затем выделить все файлы и перенести их (F6) в свои же папки, указав в верхнем поле 1.*, выбрав галку "Сохранять пути относительно текущего каталога" и опцию "Автоматически переименовывать копируемые файлы". Если нумерация со скобками не устроит, то тут же (в виде без подкаталогов) запустить групповое переименование с галкой для "Рег. выраж." примерно такого вида
Найти: 1\((.+)\)
Заменить на: $1
a-dasler
Сообщения: 11
Зарегистрирован: Пн май 04, 2015 10:56

Сообщение a-dasler »

Flasher писал(а):Пробуй:
ой-ла-ла )))
То, что доктор прописал.
Премного благодарен.

Sa, я ваш способ тоже испробую, спасибо!

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

Сообщение Flasher »

a-dasler
Пож-та. Только совсем не подумал о такой ситуации для базовых имён:

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

1   -   1
10001 - 2 или 3 ?
2   -   2 или 3 ?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить