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

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

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

Аватара пользователя
vlayura
Сообщения: 9
Зарегистрирован: Вс окт 26, 2014 11:35

Сообщение vlayura »

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

Сообщение Flasher »

vlayura
Конечно, возможно, но т.к. файла два, то ИГП тут не поможет.
Править нужно выделенные jpg или все в активной папке? Глубина нулевая?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
vlayura
Сообщения: 9
Зарегистрирован: Вс окт 26, 2014 11:35

Сообщение vlayura »

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

Сообщение Flasher »

vlayura
например, так:

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

'============================================================ 
' Переименовать jpg-файлы в активной панели по новому списку,
' сопоставленному с исходным: <NAME> - <№>.jpg >> <№>.jpg

' Условие: путь запуска - пустой
'================== Путь к исходному списку =================
List1 = "D:\List1.txt"
'==================== Путь к новому списку ==================
List2 = "D:\List2.txt"
'============================================================
Dir = CreateObject("WScript.Shell").CurrentDirectory
With CreateObject("Scripting.FileSystemObject")
  Mass1 = Filter(Split(.OpenTextFile(List1,,,-1).ReadAll, vbNewLine), ".jpg")
  Mass2 = Filter(Split(.OpenTextFile(List2,,,-1).ReadAll, vbNewLine), ".jpg")
End With : Set Fd = CreateObject("Shell.Application").NameSpace(Dir)

Set Items = Fd.Items : Items.Filter 64, "*.jpg"
If Items.Count > 0 Then
  For Each F In Items
    Name1 = Trim(Filter(Mass1, " - " & F)(0))
    Name2 = Trim(Filter(Mass2, Left(Name1, InStr(Name1, " - ")))(0))
    If Name2 <> "" Then F.Name = Mid(Name2, InStrRev(Name2, " - ") + 3)
  Next 
End If : CreateObject("WScript.Shell").SendKeys "^R"
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
vlayura
Сообщения: 9
Зарегистрирован: Вс окт 26, 2014 11:35

Сообщение vlayura »

Flasher
видимо не так делаю
сделал два файла List1.txt и List2.txt
Пути верные
в файле General.vbs заменил скрипт
захожу в папку с файлами jpg
в групповом переименовании TC выбираю этот скрипт
пишет ошибка
Изображение
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

vlayura
Я же написал:
Flasher писал(а):ИГП тут не поможет
Тут стандартное исполнение.
Один нюанс: списки сохранить в UTF-16.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
vlayura
Сообщения: 9
Зарегистрирован: Вс окт 26, 2014 11:35

Сообщение vlayura »

Flasher
вроде бы всё сделал, но где то у меня ошибка
установил perl
запускаю так c:\perl\bin\perl.exe test.pl
в файле test.pl содержимое скрипта
картинки лежат в корне C:\
там же и файлы List1.txt и List2.txt их получилось сохранить только в UTF-8. Notepad+++
Что делаю не так?
Напишите свой телефон в личку я кину вам на телефон благодарность, когда всё получится.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

vlayura
Это не Perl (.pl), это VBScript (.vbs). Памятка подфорума прочитана?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
vlayura
Сообщения: 9
Зарегистрирован: Вс окт 26, 2014 11:35

Сообщение vlayura »

Flasher
Спасибо, Огромное всё получилось, непременное условие ОБЯЗАТЕЛЬНО очистить пусть запуска в настройке панели инструментов.
Последний раз редактировалось vlayura Вт окт 28, 2014 23:35, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Пож-та.
vlayura писал(а):непременное условие ОБЯЗАТЕЛЬНО очистить пусть запуска в настройке панели инструментов
Об этом и написано:

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

' Условие: путь запуска - пустой 
Кстати, можно и не кидать на тулбар, а просто скрипт рядом с jpg положить и оттуда запускать.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Роман BY
Сообщения: 3
Зарегистрирован: Пн ноя 03, 2014 12:51

Переименование файла по имени папки

Сообщение Роман BY »

Форум честно просмотрел, но готовых решений не нашёл. Видел похожие вопросы, но переделывать и адаптировать скрипты я не умею.
Поэтому спрошу.


Задача такова.
Есть папка с файлами. Имена файлов одинаковы, разные только типы (расширения).

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

foldername_xxxxxx_xx

filename.jpg
filename.txt
filename.svg
...
Нужно переименовать файлы по имени папкию Т.е. получить такое -

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

foldername_xxxxxx_xx

foldername_xxxxxx_xx.jpg
foldername_xxxxxx_xx.txt
foldername_xxxxxx_xx.svg
...

P.S.
Для полного счастья, было бы хорошо иметь возможность произвольно выбрать только часть имени папки. Например, чтобы получить "foldername_xxxxxx" вместо "foldername_xxxxxx_xx".
Ну и прибавление номера (счётчик), если вдруг в папке окажется несколько файлов одного типа, например несколько (*.jpg)
Но это всё не обязательно.

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

Сообщение Flasher »

Роман BY
А что такое xxxxxx_xx? Это шаблон? Если да, то как он соотносится, например, с filename.jpg?
Роман BY писал(а):Нужно переименовать файлы по имени папки
>
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Роман BY
Сообщения: 3
Зарегистрирован: Пн ноя 03, 2014 12:51

Сообщение Роман BY »

Flasher
Нет, не шаблон. Просто набор цифр.
[P]
Тоже вариант. Спасибо за подсказку.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

ОК. С Первой частью справились.
Ко второй добавляем:
Найти: _*
Заменить: _??????
Как добавляется счётчик видно прямо в ИГП.

P.P.S: для этого нужно использовать режим без подкаталогов (Ctrl+Shift+B).
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Роман BY
Сообщения: 3
Зарегистрирован: Пн ноя 03, 2014 12:51

Сообщение Роман BY »

Flasher
Большое спасибо! :BEER:

Ещё вопрос. Можно ли всё это повесить на кнопку и если да, то где об этом почитать?
Ответить