Страница 3 из 4
Перемещение файлов и папок на уровень вверх
Добавлено: Вс сен 13, 2015 10:30
Totas
Маскa для имени файла ..\[N] перемещает файлы на 1 уровень вверх независимо от глубины подпапки. А если я хочу переместить на 2 уровня (этажа) вверх, тогда как?
Добавлено: Вс сен 13, 2015 10:32
Staniclaw
Totas
Надо полагать, ..\..\[N].
Добавлено: Вс сен 13, 2015 10:41
Avada
Staniclaw
Да, разумеется.
Totas
Ещё раз и больше ни разу. Здесь изначально обсуждается перемещение выделенных объектов на уровень вверх, а не любые варианты перемещения чего угодно куда угодно (их рассматривают в других местах). На свой исходный вопрос ответ вы получили, прекращайте захламлять тему.
Как выделить и переместить только подкаталоги?
Добавлено: Пн янв 23, 2017 15:24
Totas
Имеется множество альбомов, которые находятся в подпапках (т.е. папка в папке). Нужно их переместить на 1 уровень вверх (поскольку названия у них идентичные, в моем случае подпапка заменит главную папку). Однако в главном окне программы я не смог найти Выделить только подкаталоги. ТС либо показывает все файлы подряд во всех каталогах либо только главные (родительские, как их называют) папки. Как выделить и переместить вторые папки (подкаталоги) на один уровень вверх?
Добавлено: Пн янв 23, 2017 16:04
Flasher
Totas
Можно сперва найти файлы по глубине вложенности. Выбираем "Число уровней:1", отмечаем атрибут "Каталог".
Далее "Поиск с плагинами": filex | Глубина вложенности | = | 4
Т.е. C:\1\2:<активная папка>\3\4. Находим > Ctrl+A. После - по разобранной выше схеме.
Добавлено: Пн янв 23, 2017 16:49
sa
Flasher писал(а):Выбираем "Число уровней:1",
Не лишнее действие?
Добавлено: Пн янв 23, 2017 16:50
Flasher
Для ускорения поиска, думаю, нет.
Добавлено: Вт янв 31, 2017 17:11
sa
При перемещении файлов с одинаковыми именами (из разных подпапок) на уровень вверх с помощью маски ..\[N] получаю сообщение об ошибке - не удалось переименовать файлы, выделенные жирным шрифтом. Для версии 9.xx это не баг? Разве тотал не должен предложить Автоматически переименовывать в `name (2).ext`, `name (3).ext`…?
Решил вопрос конфликта имён обходным путём: сначала применил маску ..\[P]#[N] (чтобы конфликтов не было), затем, уже с маской [N], сделал замену *# на <Пусто>. Странно, что последняя операция вывела на запрос автопереименования только при условии выхода из диалога и повторном вызове команды. Попытка загрузить результаты переименования для следующего шага (F5) и выполнить указанную замену, не покидая диалог, приводила к пресловутому сообщению о невозможности переименования.
Добавлено: Вт ноя 20, 2018 15:47
BeardFury78
Есть папки, которые содержат только одну папку и её нужно переместить наверх (с объединением папок, если подпапка содержит то же название родительской папки). Как сделать? Игнорируя папки, которые содержат больше одной папки, а также файлы.
Добавлено: Вт ноя 20, 2018 16:09
Вахмурка
Я был бы не я, если бы не сунул сюда пятак в виде
скрипта для PowerPro...
Добавлено: Вт ноя 20, 2018 16:12
Flasher
Вахмурка
Ты был бы не ты, если бы знал, что
есть тема.
Добавлено: Вт ноя 20, 2018 16:20
BeardFury78
Вахмурка
PowerPro нету. А ставить ради одной задачи не хочется. Извините.
Flasher
Насколько я понял, описание темы не совпадает с тем, что я прошу.
Добавлено: Вт ноя 20, 2018 16:23
Вахмурка
BeardFury78 писал(а):PowerPro нету. А ставить ради одной задачи не хочется. Извините
Нет проблем. Наше дело - предложить.
Добавлено: Вт ноя 20, 2018 18:25
Flasher
BeardFury78
Там просто
двойной уровень распаковки при выборе, например, одного родительского каталога.
Заодно можно наткнуться на рекомендацию по
этому вопросу. Плюс я там же
давал ссылку на 1 уровень.
BeardFury78 писал(а):Игнорируя папки, которые содержат больше одной папки, а также файлы.
Хотя для этого уточнения нужен свой вариант:
Код: Выделить всё
'============================ VBS ============================
' Переместить одиночные подпапки из выбранных папок в активную
' Условие: путь запуска — пустой
' Параметр: %WF
'=============================================================
Set ShA = CreateObject("Shell.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Dir = ShA.NameSpace(FSO.GetAbsolutePathName(""))
Set List = FSO.OpenTextFile(WSH.Arguments(0),,,-1)
Do : F = List.ReadLine
If Right(F, 1) = "" Then
Set Items = ShA.NameSpace(Dir.Self.Path & "" & F).Items : Items.Filter 73952, "*"
If Items.Count = 1 Then
P = Items.Item(0).Path : Ch = Not FSO.FolderExists(FSO.GetFileName(P))
If FSO.FolderExists(P) Then Dir.MoveHere Items, 5652 : If Ch Then FSO.GetFolder(F).Delete(1)
End If
Else List.Close : WSH.Quit : End If
Loop Until List.AtEndOfStream : List.Close
Добавлено: Вт ноя 20, 2018 21:19
BeardFury78
Flasher
Спасибо большое! Занес скрипт в свою коллекцию. Сейчас правда папки уже раскидал вручную, но обязательно, как появятся такие папки, протестирую на них и отпишусь потом.
Добавлено спустя 45 минут:
Только что протестировал. Части подпапок успешно переместились на уровень вверх, а некоторые - нет. Как я понял, дело в разных именах папок, а может в каких то символах. Вот пути проблемных подпапок для примера:
d:\Files\mods2\BetterPawnControl_v1.9.5\BetterPawnControl\
d:\Files\mods2\MarvsDisasters120_TEST_R1\MarvsDisasters\
d:\Files\mods2\MarvsPleaseHaulPerishables149_R1\MarvsPleaseHaulPerishables\
d:\Files\mods2\MarvsToxicWorld018_TEST_R1\MarvsToxicWorld\
d:\Files\mods2\PowerLogic18cR10-159-1-8c-1542716600\PowerLogic\
d:\Files\mods2\Rimfire_v2.5\Rimfire 2.5\
Дополнение к просьбе: если родительская и дочерная папки содержат разные названия, то дочерную папку переместить вверх, а родительскую (уже пустую) - удалить.