Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Групповое переименование
Goto page Previous  1, 2, 3 ... 44, 45, 46 ... 48, 49, 50  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Flasher



Joined: 06 Nov 2009
Posts: 13839
Location: Москва

Post (Separately) Posted: Wed Apr 03, 2019 01:02    Post subject: Reply with quote

shadow_405
Тогда не уходите от вопросов. Я их не просто так задаю. "Идеальный" вариант возможен при наличии сравнительного алгоритма, чтобы определять к каким номерам и сколько прибавлять, понимая, что эти группы не статичны.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 9395
Location: Россия, Саратов

Post (Separately) Posted: Wed Apr 03, 2019 08:51    Post subject: Reply with quote

Flasher
Он не уходит от вопросов, он их не понимает. Хотя самому ему явно кажется, что всё тут ясно и что его решения — одно лучше другого.

shadow_405
Приращение чисел в именах файлов должно выполняться не от нечего делать, а по вполне рельной причине, не так ли? В одном из предыдущих постов эта причина между делом называлась: появление "где-то в начале списка" новых объектов, в связи с чем надо подогнать далее старую нумерацию. Так "где-то" или "в начале"? Допустим — в начале. (Оставляем пока в стороне вопрос, действительно ли эти объекты все попадают при текущей сортировке TC в начало списка — пусть даже это так.) В этом случае оптимальным было бы полное снятие прежних чисел-счётчиков с последующей заменой сквозной правильной нумерацией. Однако ничего не сказано, например, о том, надо ли добавлять нумерацию к новым объектам согласно их текущему местоположению. К тому же "номера картинок идут не подряд"...
Автоматизация тут нужна безусловно. Только не надо пытаться предлагать якобы готовые решения (как правило, в таких случаях либо ненужные, либо неправильные). От вас требовалось грамотно сформулировать задачу, включив в пример (обязательно!) новый объект и показав, как будет выглядеть при этом список до и после обработки (для этого пятистрочного списка достаточно). И пояснив, конечно, куда на самом деле будут добавляться новые файлы: только в начало? куда угодно? с какими исходными именами? Давайте конкретику, а то эта дискуссия уже неприлично затянулась без всякого толку.
О решении, если оно возможно, будут думать другие. А ваши придумки про статическое приращение чисел на столько-то после стольких-то файлов пока что с задачей попросту не сопрягаются и ничуть не "идеальны".
И нескромный вопрос: вы в Total Commander вообще работаете и с общими принципами построения там файловых списков, их сортировки и переименования хоть в первом приближении знакомы? А то, знаете ли, обучать своего знакомого следует тому, в чём сами разбираетесь...
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
shadow_405



Joined: 01 Apr 2019
Posts: 18

Post (Separately) Posted: Wed Apr 03, 2019 16:23    Post subject: Reply with quote

Flasher, Avada
Не ухожу, просто такая задача, скорее всего, будет возникать много раз. И каждый раз нужно будет увеличивать на разную величину номер в названии разного количества файлов.
Был бы идеален вариант команды типа "в названии файлов 17-153 увеличить номер на 1; 154-180 - на 2; 181-600 - на 3". Но при этом должна быть возможность менять эти диапазоны и их количество.
Насчёт причины я имел в виду не это. Новые файлы в папку не добавляются. Имеющиеся в папке файлы jpg являются иллюстрациями к нумерованному спискy в Excel. Вот в этот самый список (не в картинки) иногда добавляются новые элементы.
Например: добавился новый элемент в таблицу Excel. Он добавился после номера 16, то есть сам получил номер 17, а все элементы с номера 17 до конца получили номер на 1 больше, чем был раньше. Соответственно, все файлы jpg, начиная с номера 17 до номера 600 нужно переименовать, тоже увеличив их номер на 1.

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

Avada
Насчёт Total Commander - в первом приближении знаком, но работал в нем не очень много. Я не уверен, что мою задачу можно им решить, я вообще не знаю, чем это реально сделать. Знаю, что Total Commander - популярный инструмент для группового переименования, вот и решил спросить, реально ли такое сделать в нем.
Если задача реалистична - я разберусь. И, надеюсь, если это не слишком сложно, обучу и отца) Он делает большую сложную работу, и хотелось бы избавить его от ручного переименования сотен файлов каждый раз, как он добавит новый элемент в свой текстовый список.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 13839
Location: Москва

Post (Separately) Posted: Wed Apr 03, 2019 17:43    Post subject: Reply with quote

shadow_405 wrote:
Новые файлы в папку не добавляются.
А писали другое:
shadow_405 wrote:
Если в каталоге появляется новый элемент где-то в начале списка - все номера в пределах данного года в нем самом и, соответственно, номера картинок сдвигаются на 1.

Скиньте 2 xls с примерами до и после, так будет проще понять, что там происходит.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
shadow_405



Joined: 01 Apr 2019
Posts: 18

Post (Separately) Posted: Wed Apr 03, 2019 19:34    Post subject: Reply with quote

Flasher
Под новым элементом каталога я имел в виду новую строку в файле xls.
Прилагаю 2 xls с примером до и после.

ДО
ПОСЛЕ

В этом примере добавился новый элемент под номером 198, соответственно, бывший 198 стал 199 и т.д. Картинки есть не ко всем элементам, так что были такие файлы ДО:
1983, № 196а
1983, № 197
1983, № 199
... и так далее до номера 600.

ПОСЛЕ нужно, чтобы стало так:
1983, № 197а
1983, № 198
1983, № 200
... и так далее до номера 601.

В принципе, количество файлов jpg может со временем увеличиться, если найдется, например, иллюстрация к номеру 199 (ПОСЛЕ). Тогда этот файл картинки добавят в папку вручную и назовут "1983, № 199".
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 13839
Location: Москва

Post (Separately) Posted: Wed Apr 03, 2019 22:12    Post subject: Reply with quote

shadow_405
Мне видится, здесь другой подход нужен. Без ТС. Макрос, который будет создавать новую строку с автозаполнением в первых 3-х столцах и выбором в диалоге jpg, которому будет присвоено имя из данных этих ячеек до автосмены номеров у всех нижестоящих файлов.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
shadow_405



Joined: 01 Apr 2019
Posts: 18

Post (Separately) Posted: Thu Apr 04, 2019 00:57    Post subject: Reply with quote

Flasher
Как-то уж очень сложно. А нельзя просто вариант с выбором jpg, с которого будет произведена автосмена номеров у всех нижестоящих файлов?
Работа с файлом xls не такая простая. В нем и перемещения элементов бывают, и удаления, и ошибки могут быть, в т.ч. в номерах.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 13839
Location: Москва

Post (Separately) Posted: Thu Apr 04, 2019 01:40    Post subject: Reply with quote

shadow_405
По логике подтверждение выбора jpg должно быть сигналом для автосоздания строки, автопереименования нижеследующих ячеек и соответствующих им файлов. А ошибки в ячейках логично исправить до применения макроса, тем более, что сопоставлять имена с ячейками проще в угоду текущей алфавитно-цифровой сортировки. Но это тема для Excel/VBA-форумов уже. Их довольно много.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
shadow_405



Joined: 01 Apr 2019
Posts: 18

Post (Separately) Posted: Thu Apr 04, 2019 01:47    Post subject: Reply with quote

Flasher
Но строки могут и перемещаться/удаляться.
Нет, мне бы не хотелось так связывать файл xls с переименованием картинок. Просто переименовывать картинки не получится?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 13839
Location: Москва

Post (Separately) Posted: Thu Apr 04, 2019 02:24    Post subject: Reply with quote

shadow_405
Тогда возвращаемся к простому варианту:
Code:
'========================== VBS ===========================
' Переименовать выбранные файлы по шаблону: * № <№+1>.<ext>
' Условия:  1) путь запуска — пустой;
'           2) сортировка — обратная алфавитно-числовая
' Параметр: %WF
'==========================================================
Option Explicit: Dim Rgx, FSO, List, F, M
If WSH.Arguments.Count = 0 Then WSH.Quit
Set Rgx = New RegExp
Rgx.Pattern = "(.+№ )(\d+)([a-zа-я]?\.\w+)$"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set List = FSO.OpenTextFile(WSH.Arguments(0),,,-1)
Do: F = List.ReadLine
  If FSO.FileExists(F) Then If Rgx.Test(F) Then Set M = Rgx.Execute(F)(0) :_
  FSO.GetFile(F).Name = M.SubMatches(0) & M.SubMatches(1) + 1 & M.SubMatches(2)
Loop Until List.AtEndOfStream: List.Close: Set FSO = Nothing: Set Rgx = Nothing
CreateObject("WScript.Shell").SendKeys "^r"

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
shadow_405



Joined: 01 Apr 2019
Posts: 18

Post (Separately) Posted: Thu Apr 04, 2019 19:49    Post subject: Reply with quote

Flasher
Спасибо большое! Но я не нашел, где установить параметр "сортировка — обратная алфавитно-числовая". Без этого если попадаются подряд идущие номера, то скрипт выдает ошибку "такой файл уже существует".
А так работает прекрасно, можно увеличить/уменьшить номер в названии любого количества элементов на любое число, при этом всё работает корректно даже если есть буква после номера!
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 13839
Location: Москва

Post (Separately) Posted: Thu Apr 04, 2019 19:56    Post subject: Reply with quote

shadow_405
Метод сортировки выбирается в выпадающем списке на странице настроек "Содержимое панелей". Прямой или обратной она делается хоткеем Ctrl+F3/F4. Это азы.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
shadow_405



Joined: 01 Apr 2019
Posts: 18

Post (Separately) Posted: Thu Apr 04, 2019 20:18    Post subject: Reply with quote

Flasher
Разобрался, я думал, это всё сложнее. Правда, порядок сортировки слетает после каждого применения скрипта и перезапуска программы, но это мелочи. Отца научить будет несложно. Еще раз спасибо огромное, очень помогли!
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 13839
Location: Москва

Post (Separately) Posted: Thu Apr 04, 2019 20:27    Post subject: Reply with quote

shadow_405
После выполнения скрипта сортировка не должна слетать. А сделать в современной версии для той или иной папки её умолчательной можно с помощью настроек "Стили оформления/Автовыбор стиля".
Пож-та.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
shadow_405



Joined: 01 Apr 2019
Posts: 18

Post (Separately) Posted: Thu Apr 04, 2019 21:04    Post subject: Reply with quote

Flasher
Умолчательную сортировку сделал!
Но после применения скрипта она всё-таки становится прямой.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 44, 45, 46 ... 48, 49, 50  Next
Page 45 of 50

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group