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, 4, 5, 6, 7, 8  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
dam-69



Joined: 30 Nov 2011
Posts: 13

Post (Separately) Posted: Fri Oct 19, 2012 02:25    Post subject: Reply with quote

Ваш последний вариант почти устраивает с параметрами "%WL" 1 приставка 0
но вот только что вводить, если приставка не нужна?
т.е. как "избавиться" от приставки?
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2200
Location: Москва, Россия

Post (Separately) Posted: Fri Oct 19, 2012 10:14    Post subject: Reply with quote

dam-69
Используй вот этот скрипт.
Поменяй в нём часть кода "Изменяемые параметры":
Code:
'========== Изменяемые параметры =====================================
'Массив соответствия, задаваемый регулярными выражениями
EF.Add "^([0]{1,})0\.mp3$", "$10"
EF.Add "^(\d{1,})\d\.mp3$", "$10"
'=====================================================================

И ещё надо добавить создание папки, если не существует.
После строки
Code:
      Fold = Target & Fold & "\"

добавь
Code:
      If Not FSO.FolderExists(Fold) Then FSO.CreateFolder(Fold)

Скрипт будет работать для любого количества цифр больше 1 в имени файла (например, для 4-значных - "0000.mp3" ... "9999.mp3").
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
dam-69



Joined: 30 Nov 2011
Posts: 13

Post (Separately) Posted: Fri Oct 19, 2012 12:49    Post subject: Reply with quote

Batya
Спасибо, всё работает как должно!
Спасибо Всем!

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

Batya
А какие ещё строки добавить в скрипт, чтобы он сначала переименовал отмеченные файлы:
- если файлов > 99шт - по именам 001 ... 100,102, ... 999.mp3
- если файлов менее 100шт - 01 ... 99.mp3
а затем уж рассовал их по папкам.

Посто не хочется лишний раз пользоваться "Групповым переименованием" Smile
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2200
Location: Москва, Россия

Post (Separately) Posted: Fri Oct 19, 2012 15:43    Post subject: Reply with quote

dam-69
Считаю, что неправильно задавать условие по количеству файлов.
Как быть, если, например, выделено только 2 файла - "99.mp3" и "100.mp3"?
Но для нормальной реализации нового желания надо полностью переписать скрипт.

Для быстрого же варианта, если отталкиваться только от твоих условий, то:
Code:
'========== Изменяемые параметры =====================================
'Массив соответствия, задаваемый регулярными выражениями
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"
'=====================================================================

И после строки
Code:
List = Split(FSO.OpenTextFile(ListF).ReadAll, vbNewLine)
добавляем:
Code:
If UBound(List) > 99 Then
  EF("^00\.mp3$")     = "000"
  EF("^(\d)\d\.mp3$") = "0$10"
End If

_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
dam-69



Joined: 30 Nov 2011
Posts: 13

Post (Separately) Posted: Fri Oct 19, 2012 16:23    Post subject: Reply with quote

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шт)
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2200
Location: Москва, Россия

Post (Separately) Posted: Fri Oct 19, 2012 16:34    Post subject: Reply with quote

dam-69
Т.е., старое имя вообще не нужно? Нужно переименовать все файлы согласно сортировке (порядка в файле-списке) от 1 до конца, добавив лидирующие нули, в зависимости от общего количества файлов?
Или переместить по начальным цифрам в имени файла, оставив прежнее имя файла нетронутым?
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
dam-69



Joined: 30 Nov 2011
Posts: 13

Post (Separately) Posted: Fri Oct 19, 2012 16:37    Post subject: Reply with quote

Batya wrote:
Как быть, если, например, выделено только 2 файла - "99.mp3" и "100.mp3"

Тогда нужно их переименовать в "01.mp3" и "02.mp3 (или ещё лучше в "1.mp3" и "2.mp3, если отмечено только 2 файла) и переместить в папку 00 (или ещё лучше в 0)

т.е. Если отмеченных файлов *.mp3
< 10 шт - в папку 0 (1.mp3 ... 9.mp3)
< 100 шт- в папки 00 ... 90 (01.mp3 ... 99.mp3)
< 1000 шт - в папки 000 ... 990 (001.mp3 ... 999.mp3)

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

Batya wrote:
Т.е., старое имя вообще не нужно? ?

Да, совсем не нужно.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2200
Location: Москва, Россия

Post (Separately) Posted: Fri Oct 19, 2012 16:48    Post subject: Reply with quote

dam-69
Придёться сильно всё переписывать.
У вас эти операции настолько частые, что становится проблематичным выполнять предварительное групповое переименование, нажимая дополнительно несколько кнопок? (Только не надо говорить про полезность скрипта для других.)
Если вам это действительно настолько необходимо, то сделаю через несколько дней.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
dam-69



Joined: 30 Nov 2011
Posts: 13

Post (Separately) Posted: Fri Oct 19, 2012 16:55    Post subject: Reply with quote

Batya
Нет, не часто
Самое муторное - это распихивание. Но это уже в прошлом! Smile

Спасибо
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2298

Post (Separately) Posted: Fri Oct 19, 2012 17:24    Post subject: Reply with quote

dam-69 wrote:
Посто не хочется лишний раз пользоваться "Групповым переименованием"

Даже с учётом того, что в нём можно создать шаблоны операций?
Back to top
View user's profile Send private message
dam-69



Joined: 30 Nov 2011
Posts: 13

Post (Separately) Posted: Fri Oct 19, 2012 17:29    Post subject: Reply with quote

sa
Да шаблон есть. Просто хотелось всё за раз, на одну кнопку.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2298

Post (Separately) Posted: Fri Oct 19, 2012 17:44    Post subject: Reply with quote

Ясно. Можно ещё немного сократить количество нажатий, задав имя ходового шаблона в ключе MultiRenameLoadSettings (wincmd.ini).
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1726
Location: Арзамас

Post (Separately) Posted: Fri Oct 19, 2012 19:21    Post subject: Reply with quote

dam-69 wrote:
что вводить, если приставка не нужна?
т.е. как "избавиться" от приставки?

Чтобы передать "ничего" в качестве параметра, пишите ""
Code:
"%WL" 1 "" 0
Back to top
View user's profile Send private message
dam-69



Joined: 30 Nov 2011
Posts: 13

Post (Separately) Posted: Sat Oct 20, 2012 01:28    Post subject: Reply with quote

Tol!k wrote:
"%WL" 1 "" 0
проверил, с "" работает как надо. Спасибо, Tol!k!
sa wrote:
MultiRenameLoadSettings
- дельный совет, спасибо, прописал.
Ещё раз спасибо Всем за помощь Smile
Back to top
View user's profile Send private message
Dmit



Joined: 05 Mar 2015
Posts: 4

Post (Separately) Posted: Wed Mar 11, 2015 21:35    Post subject: Reply with quote

Привет друзья Wink

Почитав тему, я понял что и моя задача решаема, но не пойму какой именно скрипт использовать (никогда ранее скриптами не пользовался).

В одном окне у меня 3330 файлов ( по два с одинаковым именем, но с разными расширениями, пронумеованных c 001 по 1665 )

А в другом 108 папок, в которые нужно выбрать определённые файлы по номерам.

P.S. Сейчас я их раскидываю через выделение группы и туда копипастю *0001.* *0119.* *0122.* .... и перемещаю в нужную папку. Занимает это у меня 30-40 минут безотрывочного копипаста руками.
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, 4, 5, 6, 7, 8  Next
Page 4 of 8

 
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