Страница 1 из 1
Нумерация имён файлов согласно порядку в файле-списке
Добавлено: Вс фев 11, 2018 12:23
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 это уже проблематично.
Добавлено: Вс фев 11, 2018 14:38
Flasher
В текстовом редакторе подгон под любой архиваторный листинг-плагин с открытием lst-архива без сортировки.
Добавлено: Вс фев 11, 2018 15:25
Own Little World
Flasher
А можно подробнее?
Добавлено: Вс фев 11, 2018 16:14
Flasher
Own Little World
Не, не всех листинг-плагинов касается. В настройках Catalog Maker на второй вкладке Sort должна быть отмечена опция Unsorted. Список там составляется по принципу добавления нужного числа пробелов:
Код: Выделить всё
File name<пробелов до самой длинной строки>
<дефисов до самой длинной строки>
<FileName1><пробелов до самой длинной строки>
<FileName2><пробелов до самой длинной строки>
-/-/-/-
<FileName с самой длинной строкой>
-/-/-/-
Для этого плагина всё-таки скрипт лучше сделать, если вручную лень. С DiskDirW было бы куда проще.
Добавлено: Чт апр 26, 2018 16:48
Own Little World
Я нашел более простой способ. Честно говоря, странно, что сразу не сообразил, ну да ладно.
В общем, нужно использовать foobar2000. В нем есть функция переименования файлов.
Превращаем файл *.txt в плейлист (это несложно, просто меняем расширение на *.m3u). Импортируем этот плейлист в foobar2000 (главное, чтобы наш файл-плейлист находился в одной папке с искомыми файлами, которые нужно переименовать).
А дальше самое легкое: выделяем элементы плейлиста, выбираем File Operations - Rename to... К качестве маски указываем
Все.
Добавлено: Чт апр 26, 2018 17:16
Avada
Own Little World
Вообще-то данный форум — не по foobar200, а по Total Commander и дополнительным средствам для него. Включая, между прочим, и тему по автоматизации.
Добавлено: Чт апр 26, 2018 18:40
Flasher
К тому же задача изначально не стояла в нумерации имён (переименовании) файлов, а только в упорядочивании.
Добавлено: Чт апр 26, 2018 18:49
Own Little World
Flasher писал(а):К тому же задач изначально не стояла в нумерации имён (переименовании) файлов, а только в упорядочивании.
Ну да, я написал "упорядочить". А ниже я привел пример того, как это должно выглядеть (и в примере там были циферки

)
Честно говоря, способ с плагинами оказался для меня слишком сложным, а с foobar2000 я давно на ты, поэтому воспользовался им. Вдруг кому-нибудь данная информация пригодится? На форуме foobar2000 ее опубликовывать бессмысленно, там ставятся совершенно другие задачи.
А на форуме Total Commander часто мелькают темы, связанные с поиском, удалением, переименованием имен файлов и папок. К тому же, одну из этих тем я и создал.
Почему бы не переместить тему в "Программное обеспечение", чтобы все было разложено по полочкам?
Добавлено: Чт апр 26, 2018 19:04
Flasher
Own Little World писал(а):А ниже я привел пример того, как это должно выглядеть (и в примере там были циферки

)
Исходя из названия топика и описания эту нумерацию можно было воспринять только как уточнение порядка. Тем более, как верно отметили, тем с переименованием, где можно спросить, полно.
Пример. Отсюда и результат двухмесячного простоя вместо элементарного скрипта на 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