Автоматическое создание папок

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

BezDNaU
Поправил скрипт под заданное число урезаемых спереди компонентов.
Последний раз редактировалось Flasher Ср окт 12, 2011 15:14, всего редактировалось 1 раз.
BezDNaU
Сообщения: 65
Зарегистрирован: Сб май 31, 2008 10:56

Сообщение BezDNaU »

Flasher Спасибо, то что нужно.
А можно сделать перемещение вместо копирования?[/b]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Изображение Ах..ты. Всё-таки Batya был прав. Сделал.
BezDNaU
Сообщения: 65
Зарегистрирован: Сб май 31, 2008 10:56

Сообщение BezDNaU »

Оно самое. Большое спасибо.
Последний раз редактировалось BezDNaU Ср окт 12, 2011 20:42, всего редактировалось 1 раз.
Riemann
Сообщения: 23
Зарегистрирован: Ср сен 24, 2008 14:56

Сообщение Riemann »

Flasher писал(а):Riemann
А так?

Код: Выделить всё

' Создание подкаталогов внутри выделенных папок по имени файла
' с заданным расширением и перемещение в них остальных файлов
' Параметры: %L <расширение>....
Усложняем немного, можно ли в "%L <расширение>" прописывать несколько расширений, которые не нужно трогать, остальное пусть кидается в папку созданную, или надо скрипт допиливать?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение 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
Riemann
Сообщения: 23
Зарегистрирован: Ср сен 24, 2008 14:56

Сообщение Riemann »

Flasher писал(а):
Riemann писал(а):или надо скрипт допиливать?
  • А как же?
как всегда на высоте Изображение
Neptun79
Сообщения: 93
Зарегистрирован: Сб июл 24, 2010 14:02

Сообщение Neptun79 »

В-общем то задача похожая , но немного более заковыристая :D :

Имеется набор файлов - на разных дисках (4 диска, один из них подключен как внешний через USB) , у каждого файла прописан комментарии - разумеется комментарии разные , комментарии прописаны по Ctrl+Z ? храняться в файле descript.ion - также файлики эти на разных дисках ...

Задача - по названию комментария(ев) создать сгенерировать папки с такими же названиями и переместить туда файлы/папки с такими же комментариями как название папки т.е с одинаковыми комментариями, т.е файлы придеться перемещать м/у разными дисками и в разные места.

Разумеется на каждом из 4 дисков есть по 80% свободного места.

Есть мысли как это сделать ?
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Neptun79
Вопрос по ходу дела: если на разных дисках (или хотя бы в разных каталогах) лежат одноимённые файлы с одинаковыми комментариями, каким образом их предполагается свести в одну папку, где в принципе может находиться только один файл с таким именем? Ещё и автоматически переименовывать или как?
Даже самая богатая фантазия
Не представит себе наши безобразия.
Neptun79
Сообщения: 93
Зарегистрирован: Сб июл 24, 2010 14:02

Сообщение Neptun79 »

Avada писал(а):Neptun79
Вопрос по ходу дела: если на разных дисках (или хотя бы в разных каталогах) лежат одноимённые файлы с одинаковыми комментариями, каким образом их предполагается свести в одну папку, где в принципе может находиться только один файл с таким именем? Ещё и автоматически переименовывать или как?
Разумеется у файлов разные имена но могут быть одинаковые комментарии ...

Пусть будет так - сначала создаётся например папка МУЗЫКА и с неё с разных дисков собираются файлы/папки с комментариями "музыка", затем другая папка, и т.д. , весь цимус в том как правильно организвать перемещение файлов/папок м/у дисками и внутри одного диска - м/у папками ... учитывая оставшееся свободное место.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Neptun79
Ещё раз: предполагается, что совпадение (и, соответственно, конфликт) имён возникнуть тут вообще никогда не может? Что имена файлов с одинаковыми комментариями всегда разные?
И уже не единожды напоминалось, что избыточное цитирование на форуме запрещено.
Теперь следующий вопрос:
Neptun79 писал(а):Задача - по названию комментария(ев) создать сгенерировать папки с такими же названиями и переместить туда файлы/папки с такими же комментариями как название папки т.е с одинаковыми комментариями, т.е файлы придеться перемещать м/у разными дисками и в разные места.
Сгенерировать где? Всё на одном диске? Но тогда при чём тут свободное место на остальных?
Даже самая богатая фантазия
Не представит себе наши безобразия.
Neptun79
Сообщения: 93
Зарегистрирован: Сб июл 24, 2010 14:02

Сообщение Neptun79 »

Ещё раз: предполагается, что совпадение (и, соответственно, конфликт) имён возникнуть тут вообще никогда не может? Что имена файлов с одинаковыми комментариями всегда разные?
именно так или если хотите - в предположении что это так, для того чтобы это исключить предварительно проведена работа - дубликаты найдены и удалены, в других случаях название файлов/папок отличается - хотя бы на знак точки (другой знак-запятую) т.е имена файлов не совпадают.
Сгенерировать где? Всё на одном диске? Но тогда при чём тут свободное место на остальных?
согласен я здесь не совсем точно описал, попробую более развёрнуто:

Сначала генерируется папка (например "музыка") на одном диске в неё перемещаются (вырезаются) все файлы/папки с одинаковыми комментари(ем)ями- "музыка" - в том числе с 2-3-4 других дисков, если место на этом диске еще есть - генерируется следующая папка (например-"софт"), в которую перемещаются (вырезаются) все папки/файлы с одинаковыми комментарием(ями) - "софт" и т.д. , пока свободное место на диске например С не заполняется, или если например на диске С осталось 1Гб свободного места , а туда нужно переместить файлы/папки с других дисков общим размером например 3Гб т.е больше чем оставшееся свободное место на диске С , то выводится сообщение что на диске С места нет, папка будет создана на диске D и процесс повторяется снова ...
т.е я бы назвал это "жонглированием" файлами/папками м/у дисками.

или как вариант можно начать заполнять сначала с диска С , затем попорядку остальные диски ...

или еще вариант - сначала подсчитывается сколько всего на 3-4 дисках общего свободного места, затем подсчитывается сколько занимают файлы/папки с разными комментариями - софт, музыка и т.д. , раздельно для каждого комментария - софт , музыка и т.п. , затем по возрастанию размера начинают перемещаться файлы/папки на диск С , сначала перемещаются в одну папку файлы/папки с одним комментарием, размер которых меньше всех остальных, затем по возрастающей, по исчерпании места или если в случае если общий размер файлов/папок превышает оставшееся место на диске С (например) на диск С в одну папку перемещается часть файлов/папок с одним комментарием , другая (оствшаяся ) часть перемещается на другой диск , т.е папка с комментарием делится на два диска, либо же - что предпочтительнее - чтобы не дробить папку - она создается на другом диске где есть достаточно места чтобы переместить туда все файлы/папки с одним комментарием ...
избыточное цитирование на форуме запрещено.
хорошо учту, цитировал полностью чтобы было понятно на какой(ие) вопрос(ы) я отвечаю.
[/quote]
SkYB
Сообщения: 23
Зарегистрирован: Сб мар 04, 2006 19:52
Откуда: Киев

Сообщение SkYB »

Пипл я читал тему и как мне кажется, тут описывается похожее , но не совсем то что мне нужно. А именно.
Можно ли в командере, с помощью скрипта или ещё как, сделать следующее. Допустим есть несколько файлов и папок , которые нужно залить в одну папку и дать ей имя . Что нужно - чтобы как допустим в фотошопе - выделяешь нужные слои и нажимаешь Ctrl+G = и создаётся папка , куда перемещаются эти выделенные слои. Так вот в командере хочется тоже самое , но чтобы туда перемещались не только файлы , но и папки и , по хоткею аля "Ctrl+G" вылетал окошко с возможностью назвать создаваемую папку и после того как нажмёшь интер - все выделенные файлы и папки - перемещались в эту вновь созданную папу.
Такое в принципе возможно сделать ??? (хот кей в приоритете , чем кнопка)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

SkYB писал(а):как мне кажется, тут описывается похожее
Нет. Оно описывается тут или тут.
sa
Сообщения: 2758
Зарегистрирован: Ср апр 29, 2009 18:56

Сообщение sa »

SkYB писал(а):Такое в принципе возможно сделать ???
А если просто:
выделить нужные > нажать F6 > вписать имя_папки со слэшем в конце > нажать Enter?
Ответить