Страница 9 из 15
Добавлено: Ср окт 12, 2011 13:38
Flasher
BezDNaU
Поправил скрипт под заданное число урезаемых спереди компонентов.
Добавлено: Ср окт 12, 2011 15:05
BezDNaU
Flasher Спасибо, то что нужно.
А можно сделать перемещение вместо копирования?[/b]
Добавлено: Ср окт 12, 2011 15:13
Flasher

Ах..ты. Всё-таки
Batya был прав. Сделал.
Добавлено: Ср окт 12, 2011 15:24
BezDNaU
Оно самое. Большое спасибо.
Добавлено: Чт окт 13, 2011 12:13
Riemann
Flasher писал(а):Riemann
А так?
Код: Выделить всё
' Создание подкаталогов внутри выделенных папок по имени файла
' с заданным расширением и перемещение в них остальных файлов
' Параметры: %L <расширение>....
Усложняем немного, можно ли в "%L <расширение>" прописывать несколько расширений, которые не нужно трогать, остальное пусть кидается в папку созданную, или надо скрипт допиливать?
Добавлено: Чт окт 13, 2011 14:24
Flasher
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
Добавлено: Чт окт 13, 2011 15:51
Riemann
Flasher писал(а):Riemann писал(а):или надо скрипт допиливать?
как всегда на высоте

Добавлено: Вт дек 13, 2011 22:08
Neptun79
В-общем то задача похожая , но немного более заковыристая

:
Имеется набор файлов - на разных дисках (4 диска, один из них подключен как внешний через USB) , у каждого файла прописан комментарии - разумеется комментарии разные , комментарии прописаны по Ctrl+Z ? храняться в файле descript.ion - также файлики эти на разных дисках ...
Задача - по названию комментария(ев) создать сгенерировать папки с такими же названиями и переместить туда файлы/папки с такими же комментариями как название папки т.е с одинаковыми комментариями, т.е файлы придеться перемещать м/у разными дисками и в разные места.
Разумеется на каждом из 4 дисков есть по 80% свободного места.
Есть мысли как это сделать ?
Добавлено: Ср дек 14, 2011 10:12
Avada
Neptun79
Вопрос по ходу дела: если на разных дисках (или хотя бы в разных каталогах) лежат одноимённые файлы с одинаковыми комментариями, каким образом их предполагается свести в одну папку, где в принципе может находиться только один файл с таким именем? Ещё и автоматически переименовывать или как?
Добавлено: Ср дек 14, 2011 13:15
Neptun79
Avada писал(а):Neptun79
Вопрос по ходу дела: если на разных дисках (или хотя бы в разных каталогах) лежат одноимённые файлы с одинаковыми комментариями, каким образом их предполагается свести в одну папку, где в принципе может находиться только один файл с таким именем? Ещё и автоматически переименовывать или как?
Разумеется у файлов разные имена но могут быть одинаковые комментарии ...
Пусть будет так - сначала создаётся например папка МУЗЫКА и с неё с разных дисков собираются файлы/папки с комментариями "музыка", затем другая папка, и т.д. , весь цимус в том как правильно организвать перемещение файлов/папок м/у дисками и внутри одного диска - м/у папками ... учитывая оставшееся свободное место.
Добавлено: Ср дек 14, 2011 13:24
Avada
Neptun79
Ещё раз: предполагается, что совпадение (и, соответственно, конфликт) имён возникнуть тут
вообще никогда не может? Что имена файлов с одинаковыми комментариями
всегда разные?
И уже не единожды напоминалось, что избыточное цитирование на форуме
запрещено.
Теперь следующий вопрос:
Neptun79 писал(а):Задача - по названию комментария(ев) создать сгенерировать папки с такими же названиями и переместить туда файлы/папки с такими же комментариями как название папки т.е с одинаковыми комментариями, т.е файлы придеться перемещать м/у разными дисками и в разные места.
Сгенерировать
где? Всё на одном диске? Но тогда при чём тут свободное место на остальных?
Добавлено: Ср дек 14, 2011 18:25
Neptun79
Ещё раз: предполагается, что совпадение (и, соответственно, конфликт) имён возникнуть тут вообще никогда не может? Что имена файлов с одинаковыми комментариями всегда разные?
именно так или если хотите - в предположении что это так, для того чтобы это исключить предварительно проведена работа - дубликаты найдены и удалены, в других случаях название файлов/папок отличается - хотя бы на знак точки (другой знак-запятую) т.е имена файлов не совпадают.
Сгенерировать где? Всё на одном диске? Но тогда при чём тут свободное место на остальных?
согласен я здесь не совсем точно описал, попробую более развёрнуто:
Сначала генерируется папка (например "музыка") на одном диске в неё перемещаются (вырезаются) все файлы/папки с одинаковыми комментари(ем)ями- "музыка" - в том числе с 2-3-4 других дисков, если место на этом диске еще есть - генерируется следующая папка (например-"софт"), в которую перемещаются (вырезаются) все папки/файлы с одинаковыми комментарием(ями) - "софт" и т.д. , пока свободное место на диске например С не заполняется, или если например на диске С осталось 1Гб свободного места , а туда нужно переместить файлы/папки с других дисков общим размером например 3Гб т.е больше чем оставшееся свободное место на диске С , то выводится сообщение что на диске С места нет, папка будет создана на диске D и процесс повторяется снова ...
т.е я бы назвал это "жонглированием" файлами/папками м/у дисками.
или как вариант можно начать заполнять сначала с диска С , затем попорядку остальные диски ...
или еще вариант - сначала подсчитывается сколько всего на 3-4 дисках общего свободного места, затем подсчитывается сколько занимают файлы/папки с разными комментариями - софт, музыка и т.д. , раздельно для каждого комментария - софт , музыка и т.п. , затем по возрастанию размера начинают перемещаться файлы/папки на диск С , сначала перемещаются в одну папку файлы/папки с одним комментарием, размер которых меньше всех остальных, затем по возрастающей, по исчерпании места или если в случае если общий размер файлов/папок превышает оставшееся место на диске С (например) на диск С в одну папку перемещается часть файлов/папок с одним комментарием , другая (оствшаяся ) часть перемещается на другой диск , т.е папка с комментарием делится на два диска, либо же - что предпочтительнее - чтобы не дробить папку - она создается на другом диске где есть достаточно места чтобы переместить туда все файлы/папки с одним комментарием ...
избыточное цитирование на форуме запрещено.
хорошо учту, цитировал полностью чтобы было понятно на какой(ие) вопрос(ы) я отвечаю.
[/quote]
Добавлено: Пн дек 19, 2011 21:01
SkYB
Пипл я читал тему и как мне кажется, тут описывается похожее , но не совсем то что мне нужно. А именно.
Можно ли в командере, с помощью скрипта или ещё как, сделать следующее. Допустим есть несколько файлов и папок , которые нужно залить в одну папку и дать ей имя . Что нужно - чтобы как допустим в фотошопе - выделяешь нужные слои и нажимаешь Ctrl+G = и создаётся папка , куда перемещаются эти выделенные слои. Так вот в командере хочется тоже самое , но чтобы туда перемещались не только файлы , но и папки и , по хоткею аля "Ctrl+G" вылетал окошко с возможностью назвать создаваемую папку и после того как нажмёшь интер - все выделенные файлы и папки - перемещались в эту вновь созданную папу.
Такое в принципе возможно сделать ??? (хот кей в приоритете , чем кнопка)
Добавлено: Пн дек 19, 2011 21:41
Flasher
SkYB писал(а):как мне кажется, тут описывается похожее
Нет. Оно описывается
тут или
тут.
Добавлено: Пн дек 19, 2011 21:48
sa
SkYB писал(а):Такое в принципе возможно сделать ???
А если просто:
выделить нужные > нажать F6 > вписать имя_папки со слэшем в конце > нажать Enter?