Перемещение нужного количества файлов по папкам
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
dam-69
Используй вот этот скрипт.
Поменяй в нём часть кода "Изменяемые параметры":
И ещё надо добавить создание папки, если не существует.
После строки
добавь
Скрипт будет работать для любого количества цифр больше 1 в имени файла (например, для 4-значных - "0000.mp3" ... "9999.mp3").
Используй вот этот скрипт.
Поменяй в нём часть кода "Изменяемые параметры":
Код: Выделить всё
'========== Изменяемые параметры =====================================
'Массив соответствия, задаваемый регулярными выражениями
EF.Add "^([0]{1,})0\.mp3$", "$10"
EF.Add "^(\d{1,})\d\.mp3$", "$10"
'=====================================================================
После строки
Код: Выделить всё
Fold = Target & Fold & "\"Код: Выделить всё
If Not FSO.FolderExists(Fold) Then FSO.CreateFolder(Fold)Нет, я не сплю. Я просто медленно моргаю.
Batya
Спасибо, всё работает как должно!
Спасибо Всем!
Добавлено спустя 1 час 1 минуту:
Batya
А какие ещё строки добавить в скрипт, чтобы он сначала переименовал отмеченные файлы:
- если файлов > 99шт - по именам 001 ... 100,102, ... 999.mp3
- если файлов менее 100шт - 01 ... 99.mp3
а затем уж рассовал их по папкам.
Посто не хочется лишний раз пользоваться "Групповым переименованием"
Спасибо, всё работает как должно!
Спасибо Всем!
Добавлено спустя 1 час 1 минуту:
Batya
А какие ещё строки добавить в скрипт, чтобы он сначала переименовал отмеченные файлы:
- если файлов > 99шт - по именам 001 ... 100,102, ... 999.mp3
- если файлов менее 100шт - 01 ... 99.mp3
а затем уж рассовал их по папкам.
Посто не хочется лишний раз пользоваться "Групповым переименованием"
dam-69
Считаю, что неправильно задавать условие по количеству файлов.
Как быть, если, например, выделено только 2 файла - "99.mp3" и "100.mp3"?
Но для нормальной реализации нового желания надо полностью переписать скрипт.
Для быстрого же варианта, если отталкиваться только от твоих условий, то:
И после строкидобавляем:
Считаю, что неправильно задавать условие по количеству файлов.
Как быть, если, например, выделено только 2 файла - "99.mp3" и "100.mp3"?
Но для нормальной реализации нового желания надо полностью переписать скрипт.
Для быстрого же варианта, если отталкиваться только от твоих условий, то:
Код: Выделить всё
'========== Изменяемые параметры =====================================
'Массив соответствия, задаваемый регулярными выражениями
EF.Add "^00\.mp3$", "00"
EF.Add "^(0{2,})0\.mp3$", "$10"
EF.Add "^(\d)\d\.mp3$", "$10"
EF.Add "^(\d{2,})\d\.mp3$", "$10"
'=====================================================================Код: Выделить всё
List = Split(FSO.OpenTextFile(ListF).ReadAll, vbNewLine)Код: Выделить всё
If UBound(List) > 99 Then
EF("^00\.mp3$") = "000"
EF("^(\d)\d\.mp3$") = "0$10"
End IfНет, я не сплю. Я просто медленно моргаю.
Batya
Наверно я не достаточно чётко сформулировал просьбу. Уточняю.
Ваш предыдущий скрипт меня полностью устраивает - файлы вида 00.mp3 ... 999.mp3 он "рассовывает" превосходно. Но мне перед применением скрипта приходится файлы, например 001blablaIprIdr.mp3 ... 999blablaIprIdr.mp3 или blabla01IprIdr.mp3 ... blabla99IprIdr.mp3 (имя может быть любое) "Группо-переименовывать", обычно все скопом.
Вот и хотелось, что бы ваш предыдущий скрипт перед "рассованием", имена этих файлов привёл к виду 001.mp3 ... 999.mp3 (если mp3 файлов больше 99шт) или 01.mp3 ... 99.mp3 (если mp3 файлов меньше 100шт)
Наверно я не достаточно чётко сформулировал просьбу. Уточняю.
Ваш предыдущий скрипт меня полностью устраивает - файлы вида 00.mp3 ... 999.mp3 он "рассовывает" превосходно. Но мне перед применением скрипта приходится файлы, например 001blablaIprIdr.mp3 ... 999blablaIprIdr.mp3 или blabla01IprIdr.mp3 ... blabla99IprIdr.mp3 (имя может быть любое) "Группо-переименовывать", обычно все скопом.
Вот и хотелось, что бы ваш предыдущий скрипт перед "рассованием", имена этих файлов привёл к виду 001.mp3 ... 999.mp3 (если mp3 файлов больше 99шт) или 01.mp3 ... 99.mp3 (если mp3 файлов меньше 100шт)
dam-69
Т.е., старое имя вообще не нужно? Нужно переименовать все файлы согласно сортировке (порядка в файле-списке) от 1 до конца, добавив лидирующие нули, в зависимости от общего количества файлов?
Или переместить по начальным цифрам в имени файла, оставив прежнее имя файла нетронутым?
Т.е., старое имя вообще не нужно? Нужно переименовать все файлы согласно сортировке (порядка в файле-списке) от 1 до конца, добавив лидирующие нули, в зависимости от общего количества файлов?
Или переместить по начальным цифрам в имени файла, оставив прежнее имя файла нетронутым?
Нет, я не сплю. Я просто медленно моргаю.
Тогда нужно их переименовать в "01.mp3" и "02.mp3 (или ещё лучше в "1.mp3" и "2.mp3, если отмечено только 2 файла) и переместить в папку 00 (или ещё лучше в 0)Batya писал(а):Как быть, если, например, выделено только 2 файла - "99.mp3" и "100.mp3"
т.е. Если отмеченных файлов *.mp3
< 10 шт - в папку 0 (1.mp3 ... 9.mp3)
< 100 шт- в папки 00 ... 90 (01.mp3 ... 99.mp3)
< 1000 шт - в папки 000 ... 990 (001.mp3 ... 999.mp3)
Добавлено спустя 5 минут:
Да, совсем не нужно.Batya писал(а):Т.е., старое имя вообще не нужно? ?
dam-69
Придёться сильно всё переписывать.
У вас эти операции настолько частые, что становится проблематичным выполнять предварительное групповое переименование, нажимая дополнительно несколько кнопок? (Только не надо говорить про полезность скрипта для других.)
Если вам это действительно настолько необходимо, то сделаю через несколько дней.
Придёться сильно всё переписывать.
У вас эти операции настолько частые, что становится проблематичным выполнять предварительное групповое переименование, нажимая дополнительно несколько кнопок? (Только не надо говорить про полезность скрипта для других.)
Если вам это действительно настолько необходимо, то сделаю через несколько дней.
Нет, я не сплю. Я просто медленно моргаю.
Чтобы передать "ничего" в качестве параметра, пишите ""dam-69 писал(а):что вводить, если приставка не нужна?
т.е. как "избавиться" от приставки?
Код: Выделить всё
"%WL" 1 "" 0Привет друзья 
Почитав тему, я понял что и моя задача решаема, но не пойму какой именно скрипт использовать (никогда ранее скриптами не пользовался).
В одном окне у меня 3330 файлов ( по два с одинаковым именем, но с разными расширениями, пронумеованных c 001 по 1665 )
А в другом 108 папок, в которые нужно выбрать определённые файлы по номерам.
P.S. Сейчас я их раскидываю через выделение группы и туда копипастю *0001.* *0119.* *0122.* .... и перемещаю в нужную папку. Занимает это у меня 30-40 минут безотрывочного копипаста руками.
Почитав тему, я понял что и моя задача решаема, но не пойму какой именно скрипт использовать (никогда ранее скриптами не пользовался).
В одном окне у меня 3330 файлов ( по два с одинаковым именем, но с разными расширениями, пронумеованных c 001 по 1665 )
А в другом 108 папок, в которые нужно выбрать определённые файлы по номерам.
P.S. Сейчас я их раскидываю через выделение группы и туда копипастю *0001.* *0119.* *0122.* .... и перемещаю в нужную папку. Занимает это у меня 30-40 минут безотрывочного копипаста руками.