Нумерация имён файлов согласно порядку в файле-списке

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

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

Ответить
Own Little World
Сообщения: 80
Зарегистрирован: Сб июн 07, 2014 07:48

Нумерация имён файлов согласно порядку в файле-списке

Сообщение Own Little World »

Доброго времени суток.
Существует папка с файлами:
  • Азбука Морзе.mp4
    Баталии и Схавали.mp4
    Выбор наше все.mp4
    Ягодки и ягоды.mp4
Также существует файл *.txt, содержимое которого следующее:
  • Выбор наше все.mp4
    Баталии и Схавали.mp4
    Ягодки и ягоды.mp4
    Азбука Морзе.mp4
Можно ли, используя Total Commander, CMD, VBS или все вместе упорядочить файлы в папке согласно файлу?
В результате хотелось бы видеть что-то наподобие:
  • 1. Выбор наше все.mp4
    2. Баталии и Схавали.mp4
    3. Ягодки и ягоды.mp4
    4. Азбука Морзе.mp4
P.S. Для 4 файлов можно это сделать вручную, но для 50 это уже проблематично.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

В текстовом редакторе подгон под любой архиваторный листинг-плагин с открытием lst-архива без сортировки.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Own Little World
Сообщения: 80
Зарегистрирован: Сб июн 07, 2014 07:48

Сообщение Own Little World »

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

Сообщение Flasher »

Own Little World
Не, не всех листинг-плагинов касается. В настройках Catalog Maker на второй вкладке Sort должна быть отмечена опция Unsorted. Список там составляется по принципу добавления нужного числа пробелов:

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

File name<пробелов до самой длинной строки>
<дефисов до самой длинной строки>
<FileName1><пробелов до самой длинной строки>
<FileName2><пробелов до самой длинной строки>
-/-/-/-
<FileName с самой длинной строкой>
-/-/-/-
Для этого плагина всё-таки скрипт лучше сделать, если вручную лень. С DiskDirW было бы куда проще.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Own Little World
Сообщения: 80
Зарегистрирован: Сб июн 07, 2014 07:48

Сообщение Own Little World »

Я нашел более простой способ. Честно говоря, странно, что сразу не сообразил, ну да ладно.
В общем, нужно использовать foobar2000. В нем есть функция переименования файлов.
Превращаем файл *.txt в плейлист (это несложно, просто меняем расширение на *.m3u). Импортируем этот плейлист в foobar2000 (главное, чтобы наш файл-плейлист находился в одной папке с искомыми файлами, которые нужно переименовать).
А дальше самое легкое: выделяем элементы плейлиста, выбираем File Operations - Rename to... К качестве маски указываем

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

%list_index%. %filename%
Все.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Own Little World
Вообще-то данный форум — не по foobar200, а по Total Commander и дополнительным средствам для него. Включая, между прочим, и тему по автоматизации.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

К тому же задача изначально не стояла в нумерации имён (переименовании) файлов, а только в упорядочивании.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Own Little World
Сообщения: 80
Зарегистрирован: Сб июн 07, 2014 07:48

Сообщение Own Little World »

Flasher писал(а):К тому же задач изначально не стояла в нумерации имён (переименовании) файлов, а только в упорядочивании.
Ну да, я написал "упорядочить". А ниже я привел пример того, как это должно выглядеть (и в примере там были циферки :D )
Честно говоря, способ с плагинами оказался для меня слишком сложным, а с foobar2000 я давно на ты, поэтому воспользовался им. Вдруг кому-нибудь данная информация пригодится? На форуме foobar2000 ее опубликовывать бессмысленно, там ставятся совершенно другие задачи.
А на форуме Total Commander часто мелькают темы, связанные с поиском, удалением, переименованием имен файлов и папок. К тому же, одну из этих тем я и создал.
Почему бы не переместить тему в "Программное обеспечение", чтобы все было разложено по полочкам?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Own Little World писал(а):А ниже я привел пример того, как это должно выглядеть (и в примере там были циферки :D)
Исходя из названия топика и описания эту нумерацию можно было воспринять только как уточнение порядка. Тем более, как верно отметили, тем с переименованием, где можно спросить, полно. Пример. Отсюда и результат двухмесячного простоя вместо элементарного скрипта на 3 минуты:

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

'================================== VBS ==================================
' Пронумеровать имена файлов активного каталога в порядке заданного списка
' Условия:  путь запуска — пустой; список в ANSI
' Параметр: "<путь к списку>"
'=========================================================================
Set FSO = CreateObject("Scripting.FileSystemObject")
With New RegExp
  .Global = True : .Pattern = "^[\r\n]+|\s+(?=\r?\n|$)"
  List = Split(.Replace(FSO.OpenTextFile(WSH.Arguments(0)).ReadAll, ""), vbLf)
End With
For i = 0 To UBound(List)
  N = List(i) : If FSO.FileExists(N) Then FSO.GetFile(N).Name = i + 1 & ". " & N
Next
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить