View previous topic :: View next topic |
Author |
Message |
Hjkma
Joined: 18 Apr 2015 Posts: 178
|
(Separately) Posted: Tue Jul 26, 2016 14:20 Post subject: Переместить файлы по маске в папки, соответствующие маскам |
|
|
Здравствуйте.
Ищу способ, который позволил бы перемещать файлы по маске в специальные новосозданные папки. Причем так чтобы перемещались по масково по отдельности в папки, т.е. файлы, соответствующие одной маской, отправляются в одну папку, а файлы соответствующие другой маске, отправляются в другую папку и т.д.
Дело в том, что у меня в одной папке есть около 500+ тыс. файлов, собранные со всех каталогов по поиску по маскам. И мне потребуется отсортировать огромную кучу файлов так, чтобы они переместились в соответствующие их маскам каталоги, причем названия каталогов должны браться из масок имени файлов. Например, есть у меня маска "melissa clarke", по ней находятся где-то три тысячи файлов и они должны переместиться в папку под названием "melissa clarke". А есть другая маска "*.gif", которая находит в этом каталоге 6 тыс. гифок и они должны переместиться в папку под названием "*.gif". Надеюсь принцип понятен. Как это сделать, самостоятельно в интернете не нашел, так что обращаюсь к вам с помощью, возможно есть способ создать такой скрипт, который позволил бы это реализовать.
Если это получится, то по идее в таком огромном каталоге должно создаться 2000+ подпапок, которые по отдельности будут представлять с себя хранилища файлов, соответствующие одной из масок, так как сами маски суммарно представляют собой 2+ тыс. отдельных единиц. И кстати в целом сам перечень масок занимает собой 24 тыс. знаков, так что хотелось бы чтобы сами маски можно было бы внести в код скрипта, т.к. лимит параметров в настройке инструментов ограничен 2048 знаков. А еще возможна такая ситуация, когда будут такие файлы, названия которых будут соответствовать нескольким маскам из целого перечня масок. В таком случае, пусть такие файлы перемещаются по принципу первенства масок, т.е. перемещаются в папки только по маске, которая в перечне масок стоит наиболее первой. Как-то так. Надеюсь на помощь и заранее спасибо! |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Flasher
![](images/avatars/11897631144e285f14b2775.jpg)
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Jul 26, 2016 15:18 Post subject: |
|
|
Hjkma
Тем с перемещением у нас было жуть как много (в частности). Можно было и не создавать новую.
Имена, на секундочку, не могут содержать *, поэтому именовать таким образом не получится. Нужно искать альтернативный символ. А так ничего сложного, всё тот же принцип, только ещё проще.
Впрочем, я уже нашёл (*﹡⋇⋆×∗⋆). Какой берём? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Hjkma
Joined: 18 Apr 2015 Posts: 178
|
(Separately) Posted: Tue Jul 26, 2016 15:40 Post subject: |
|
|
Flasher
Простите, что не создал в этой теме пост. Можно перенести и эту тему удалить. Просто искал по форуме тему как перенести файлы в специальные папки по масково и ничего не нашел, так что решил создать новую.
Насчет символа, предоставляю на ваш выбор. Только про имена я не понял, речь о названиях новых папок? Если так, лучше использовать такой символ, чтобы со всех устройств можно было бы заходить в такие папки. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Flasher
![](images/avatars/11897631144e285f14b2775.jpg)
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Jul 26, 2016 15:51 Post subject: |
|
|
Hjkma
Уже неважно. Пусть тут будет.
И что, мне предлагается все возможные устройства проверить? ![Very Happy](images/smiles/icon_biggrin.gif) _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Hjkma
Joined: 18 Apr 2015 Posts: 178
|
(Separately) Posted: Tue Jul 26, 2016 15:52 Post subject: |
|
|
Flasher
Ну ладно, пусть будет любой символ. Если что, я всегда могу просто путем массового переименования убрать символ с названий папок. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Flasher
![](images/avatars/11897631144e285f14b2775.jpg)
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Jul 26, 2016 16:16 Post subject: |
|
|
Hjkma
Перечитал первый пост и не совсем понял.
В этой одной папке подпапок вообще нет? Т.е. все 500 тыс. файлов скинуты в неё? А смысл? Это создаёт плохие условия для работы файлменеджеров.
Можно было бы и так искать.
Т.е. надо полагать, что и повторных имён нет? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Hjkma
Joined: 18 Apr 2015 Posts: 178
|
(Separately) Posted: Tue Jul 26, 2016 16:20 Post subject: |
|
|
Flasher
Конкретно в этой папке подпапок нет. Дело в том, что файлы в этой папке изначательно были из других каталогов и перемещены потом в это место после поиска по маскам по всему компьютеру. Про повторных имён я не понял? Речь об имён файлов? Если да, то нет, названия файлов не идентичны и не повторяются. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Flasher
![](images/avatars/11897631144e285f14b2775.jpg)
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Jul 26, 2016 16:22 Post subject: |
|
|
Hjkma
А папки там же создавать? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Tue Jul 26, 2016 16:29; edited 2 times in total |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Hjkma
Joined: 18 Apr 2015 Posts: 178
|
(Separately) Posted: Tue Jul 26, 2016 16:26 Post subject: |
|
|
Flasher
Папку? Или папкИ? Если да, то там же конечно. Еще один момент, Тотал очень долго эту папку открывает, так что хотелось бы чтобы скрипт работал бы с папкой под курсором (чтобы не открывать её)? Это возможно? |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Flasher
![](images/avatars/11897631144e285f14b2775.jpg)
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Jul 26, 2016 16:30 Post subject: |
|
|
Hjkma
Исправил. Мин.
Add: Немного потестировать пришлось.
Code: | '=================== VBS ===================
' Переместить файлы из каталога под курсором
' в папки с именами соответствующих им масок
' Параметр: %V
'===========================================
Option Explicit: Dim Filt, Fold, FSO, ShAp, Items, Mask, Name, Path
'===================== Маски файлов через "|" =====================
Filt = "1*.*|*name*|name*.txt|name 1.txt|name 1*.txt|name *1.*|" &_
"*2*|2.txt|name2.txt|name 2.txt|name *2.txt|name 2*.*|name 2.*|" &_
"*3*.txt|name 3.*|name3.txt|name 4.txt|name *4*.txt|*5*|*5*.txt"
'==================================================================
Fold = WScript.Arguments(0)
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FolderExists(Fold) Then WScript.Quit
Set ShAp = CreateObject("Shell.Application")
Set Fold = ShAp.NameSpace(Fold)
Set Items = Fold.Items
For Each Mask in Split(Filt, "|")
Items.Filter 73920, Mask
If Items.Count Then
Name = Replace(Mask, "*", ChrW(-246))
Path = Fold.Self.Path & "\" & Name
If Not FSO.FolderExists(Path) Then Fold.NewFolder(Name)
ShAp.NameSpace(Path).MoveHere Items
End If
Next |
_________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Hjkma
Joined: 18 Apr 2015 Posts: 178
|
(Separately) Posted: Tue Jul 26, 2016 17:09 Post subject: |
|
|
Flasher
Отлично, все работает как надо! Огромное вам спасибо, ваши скрипты очень меня выручают! |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Lex177
Joined: 06 Dec 2016 Posts: 5
|
(Separately) Posted: Tue Dec 06, 2016 13:07 Post subject: |
|
|
Здравствуйте!
Подскажите пожалуйста как правильно прописать маску для файлов:
05534_151_1_1.jpg
05535_160_1_1.jpg
05535_160_1_2.jpg
05536_162_2_1.jpg
05536_162_2_2.jpg
05536_162_2_3.jpg
Нужно, чтобы все файлы с одинаковым значением до первого подчеркивания попадали в одну папку с одноименным названием (05534, 05535, 05536). |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Staniclaw
![](images/avatars/15309935084fddf920bc816.png)
Joined: 12 Dec 2010 Posts: 533 Location: Ташкент
|
(Separately) Posted: Tue Dec 06, 2016 13:18 Post subject: |
|
|
Lex177
ИГП, регулярное выражение.
Если там только цифры и подчёркивания, то навскидку так:
Поиск: ^(\d+?)_
Замена: $1\$1_ _________________ Вечному двигателю -- вечные тормоза!.. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Lex177
Joined: 06 Dec 2016 Posts: 5
|
(Separately) Posted: Tue Dec 06, 2016 13:44 Post subject: |
|
|
Да, все фото одного вида.
Не понял что куда вставлять.
Добавлено спустя 3 минуты:
Может быть проще написать, чтобы первые 5 символов были маской и они же названием новой папки?
Только я не знаю как это прописать.... |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
Staniclaw
![](images/avatars/15309935084fddf920bc816.png)
Joined: 12 Dec 2010 Posts: 533 Location: Ташкент
|
(Separately) Posted: Tue Dec 06, 2016 13:51 Post subject: |
|
|
Lex177 wrote: | Не понял что куда вставлять. | В окно инструмента группового переименования, который про умолчанию вызывается клавишами Ctrl+M. Там сверху справа есть поля для поиска и замены. Вставьте маски туда и отметьте галочку ''Рег. выраж.''. _________________ Вечному двигателю -- вечные тормоза!.. |
|
Back to top |
|
![](templates/subSilver/images/spacer.gif) |
|