Автоматическое создание папок
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
BezDNaU
Поправил скрипт под заданное число урезаемых спереди компонентов.
Поправил скрипт под заданное число урезаемых спереди компонентов.
Последний раз редактировалось Flasher Ср окт 12, 2011 15:14, всего редактировалось 1 раз.
Оно самое. Большое спасибо.
Последний раз редактировалось BezDNaU Ср окт 12, 2011 20:42, всего редактировалось 1 раз.
Усложняем немного, можно ли в "%L <расширение>" прописывать несколько расширений, которые не нужно трогать, остальное пусть кидается в папку созданную, или надо скрипт допиливать?Flasher писал(а):Riemann
А так?Код: Выделить всё
' Создание подкаталогов внутри выделенных папок по имени файла ' с заданным расширением и перемещение в них остальных файлов ' Параметры: %L <расширение>....
Riemann писал(а):или надо скрипт допиливать?
- А как же?
Код: Выделить всё
'====================================================================
' Создание подкаталогов внутри выделенных папок по имени файла
' с первым расширением в заданном фильтре исключений
' и перемещение в них остальных файлов
' Параметры: %L <фильтр расширений игнорируемых файлов через запятую>
' Пример: %L avi,mkv,mp4,flv,wmv
'====================================================================
With WScript.Arguments
If .Count = 0 Then Wscript.Quit
List = .Item(0)
Filt = .Item(1)
If .Count = 1 Then
MsgBox "Укажите 2 параметра!",_
vbExclamation, " Перемещение содержимого каталогов"
Wscript.Quit
End If
End With
C = InStr(Filt, ",")
If C > 0 Then Ext = Left(Filt, C-1) Else Ext = Filt
Set D = CreateObject("Scripting.Dictionary")
With CreateObject("Scripting.FileSystemObject")
Set TempFile = .OpenTextFile(List, 1)
Do While Not TempFile.AtEndOfStream
Fd = TempFile.ReadLine
If .FolderExists(Fd) Then
On Error Resume Next
For Each F in .GetFolder(Fd).Files
If StrComp(Ext, .GetExtensionName(F), 1) = 0 Then
NF = Left(F, Len(F)-Len(Ext)-1) & ""
If Not .FolderExists(NF) Then .CreateFolder NF
Exit For
End If
Next
For Each Fi in Split(Filt,",")
D.Add LCase(Fi), ""
Next
For Each F in .GetFolder(Fd).Files
If Not D.Exists(LCase(.GetExtensionName(F))) Then .MoveFile F, NF
Next
End If
Loop
TempFile.Close
End With
Set D = Nothing
WScript.QuitВ-общем то задача похожая , но немного более заковыристая
:
Имеется набор файлов - на разных дисках (4 диска, один из них подключен как внешний через USB) , у каждого файла прописан комментарии - разумеется комментарии разные , комментарии прописаны по Ctrl+Z ? храняться в файле descript.ion - также файлики эти на разных дисках ...
Задача - по названию комментария(ев) создать сгенерировать папки с такими же названиями и переместить туда файлы/папки с такими же комментариями как название папки т.е с одинаковыми комментариями, т.е файлы придеться перемещать м/у разными дисками и в разные места.
Разумеется на каждом из 4 дисков есть по 80% свободного места.
Есть мысли как это сделать ?
Имеется набор файлов - на разных дисках (4 диска, один из них подключен как внешний через USB) , у каждого файла прописан комментарии - разумеется комментарии разные , комментарии прописаны по Ctrl+Z ? храняться в файле descript.ion - также файлики эти на разных дисках ...
Задача - по названию комментария(ев) создать сгенерировать папки с такими же названиями и переместить туда файлы/папки с такими же комментариями как название папки т.е с одинаковыми комментариями, т.е файлы придеться перемещать м/у разными дисками и в разные места.
Разумеется на каждом из 4 дисков есть по 80% свободного места.
Есть мысли как это сделать ?
Neptun79
Вопрос по ходу дела: если на разных дисках (или хотя бы в разных каталогах) лежат одноимённые файлы с одинаковыми комментариями, каким образом их предполагается свести в одну папку, где в принципе может находиться только один файл с таким именем? Ещё и автоматически переименовывать или как?
Вопрос по ходу дела: если на разных дисках (или хотя бы в разных каталогах) лежат одноимённые файлы с одинаковыми комментариями, каким образом их предполагается свести в одну папку, где в принципе может находиться только один файл с таким именем? Ещё и автоматически переименовывать или как?
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Разумеется у файлов разные имена но могут быть одинаковые комментарии ...Avada писал(а):Neptun79
Вопрос по ходу дела: если на разных дисках (или хотя бы в разных каталогах) лежат одноимённые файлы с одинаковыми комментариями, каким образом их предполагается свести в одну папку, где в принципе может находиться только один файл с таким именем? Ещё и автоматически переименовывать или как?
Пусть будет так - сначала создаётся например папка МУЗЫКА и с неё с разных дисков собираются файлы/папки с комментариями "музыка", затем другая папка, и т.д. , весь цимус в том как правильно организвать перемещение файлов/папок м/у дисками и внутри одного диска - м/у папками ... учитывая оставшееся свободное место.
Neptun79
Ещё раз: предполагается, что совпадение (и, соответственно, конфликт) имён возникнуть тут вообще никогда не может? Что имена файлов с одинаковыми комментариями всегда разные?
И уже не единожды напоминалось, что избыточное цитирование на форуме запрещено.
Теперь следующий вопрос:
Ещё раз: предполагается, что совпадение (и, соответственно, конфликт) имён возникнуть тут вообще никогда не может? Что имена файлов с одинаковыми комментариями всегда разные?
И уже не единожды напоминалось, что избыточное цитирование на форуме запрещено.
Теперь следующий вопрос:
Сгенерировать где? Всё на одном диске? Но тогда при чём тут свободное место на остальных?Neptun79 писал(а):Задача - по названию комментария(ев) создать сгенерировать папки с такими же названиями и переместить туда файлы/папки с такими же комментариями как название папки т.е с одинаковыми комментариями, т.е файлы придеться перемещать м/у разными дисками и в разные места.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
именно так или если хотите - в предположении что это так, для того чтобы это исключить предварительно проведена работа - дубликаты найдены и удалены, в других случаях название файлов/папок отличается - хотя бы на знак точки (другой знак-запятую) т.е имена файлов не совпадают.Ещё раз: предполагается, что совпадение (и, соответственно, конфликт) имён возникнуть тут вообще никогда не может? Что имена файлов с одинаковыми комментариями всегда разные?
согласен я здесь не совсем точно описал, попробую более развёрнуто:Сгенерировать где? Всё на одном диске? Но тогда при чём тут свободное место на остальных?
Сначала генерируется папка (например "музыка") на одном диске в неё перемещаются (вырезаются) все файлы/папки с одинаковыми комментари(ем)ями- "музыка" - в том числе с 2-3-4 других дисков, если место на этом диске еще есть - генерируется следующая папка (например-"софт"), в которую перемещаются (вырезаются) все папки/файлы с одинаковыми комментарием(ями) - "софт" и т.д. , пока свободное место на диске например С не заполняется, или если например на диске С осталось 1Гб свободного места , а туда нужно переместить файлы/папки с других дисков общим размером например 3Гб т.е больше чем оставшееся свободное место на диске С , то выводится сообщение что на диске С места нет, папка будет создана на диске D и процесс повторяется снова ...
т.е я бы назвал это "жонглированием" файлами/папками м/у дисками.
или как вариант можно начать заполнять сначала с диска С , затем попорядку остальные диски ...
или еще вариант - сначала подсчитывается сколько всего на 3-4 дисках общего свободного места, затем подсчитывается сколько занимают файлы/папки с разными комментариями - софт, музыка и т.д. , раздельно для каждого комментария - софт , музыка и т.п. , затем по возрастанию размера начинают перемещаться файлы/папки на диск С , сначала перемещаются в одну папку файлы/папки с одним комментарием, размер которых меньше всех остальных, затем по возрастающей, по исчерпании места или если в случае если общий размер файлов/папок превышает оставшееся место на диске С (например) на диск С в одну папку перемещается часть файлов/папок с одним комментарием , другая (оствшаяся ) часть перемещается на другой диск , т.е папка с комментарием делится на два диска, либо же - что предпочтительнее - чтобы не дробить папку - она создается на другом диске где есть достаточно места чтобы переместить туда все файлы/папки с одним комментарием ...
хорошо учту, цитировал полностью чтобы было понятно на какой(ие) вопрос(ы) я отвечаю.избыточное цитирование на форуме запрещено.
[/quote]
Пипл я читал тему и как мне кажется, тут описывается похожее , но не совсем то что мне нужно. А именно.
Можно ли в командере, с помощью скрипта или ещё как, сделать следующее. Допустим есть несколько файлов и папок , которые нужно залить в одну папку и дать ей имя . Что нужно - чтобы как допустим в фотошопе - выделяешь нужные слои и нажимаешь Ctrl+G = и создаётся папка , куда перемещаются эти выделенные слои. Так вот в командере хочется тоже самое , но чтобы туда перемещались не только файлы , но и папки и , по хоткею аля "Ctrl+G" вылетал окошко с возможностью назвать создаваемую папку и после того как нажмёшь интер - все выделенные файлы и папки - перемещались в эту вновь созданную папу.
Такое в принципе возможно сделать ??? (хот кей в приоритете , чем кнопка)
Можно ли в командере, с помощью скрипта или ещё как, сделать следующее. Допустим есть несколько файлов и папок , которые нужно залить в одну папку и дать ей имя . Что нужно - чтобы как допустим в фотошопе - выделяешь нужные слои и нажимаешь Ctrl+G = и создаётся папка , куда перемещаются эти выделенные слои. Так вот в командере хочется тоже самое , но чтобы туда перемещались не только файлы , но и папки и , по хоткею аля "Ctrl+G" вылетал окошко с возможностью назвать создаваемую папку и после того как нажмёшь интер - все выделенные файлы и папки - перемещались в эту вновь созданную папу.
Такое в принципе возможно сделать ??? (хот кей в приоритете , чем кнопка)
Ах..ты. Всё-таки Batya был прав. Сделал.