Удаление в 50 каталогах лишних папок, с сохранением файлов
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
-
Darkenlightener
- Сообщения: 19
- Зарегистрирован: Сб янв 14, 2012 12:58
Это меня навело на мысль, но, как я уже сказал, в скриптах не силенFlasher писал(а):А это ни о чём не говорит?:Flasher писал(а):проще один из имеющихся скриптов перемещения на уровень вверх подлатать
Не годятся, т.к. все архивы уже распакованы, а называются папки непредсказуемо, названия вложенных вообще могут не совпадать с названием корневой.Flasher писал(а):Я вижу пока следующие пути решения вопроса:
1) Поскольку при распаковке имя директории соответвует базовому имени архива, можно сравнивать её имя с именем находящейся внутри неё директории, допустим, по каким-то первым символам, и если они совпадают, то содержимое должно перемещаться наверх. Тут же можно проверять наличии файлов с определённым расширением.
2) Распаковать все архивы заново с присвоением одинакового комментария папкам. По тому комментарию отслеживать папки с вышеописанными условиями и перемещать.
Наверное, один из этих способов, но я не совсем понимаю, в чем разница. Точно могу сказать, что автоперемещение можно применять только после ручной проверки найденных папок. Иначе может получиться, например, что файлы из папки "Иванов, А.\Вечный зов" переместятся в папку "Иванов, А.", а этого мне не надо.Flasher писал(а):3) Организовать поиск через Script Content Plugin, самостоятельно проверить найденные по заданному изначально критерию папки, потом воспользоваться скриптом автоперемещения.
4) Воспользоваться обычным поиском папок с заданной глубиной расположения этих распакованных директорий. Задача скрипта будет выделить нужные папки для самостоятельной проверки на пригодность для последующего перемещения наверх.
Tol!k
Наверное, этот скрипт подойдет, но как его можно доработать, чтобы я мог вручную изменять уровень вложенности, на котором надо искать?
Идеальное решение, наверное, поиск всех таких папок, проверка, отбор нужных и автоперемещение, т.е. способ 3 или 4, но я не могу выбрать нужный по причине ламерства
Это плохо.Darkenlightener писал(а):а называются папки непредсказуемо
В способе поиска, и, соответсвенно, в получении результатов. Для 3-го варианта нужно писать контент-скрипт для указанного плагина с последующим подставлением данных на вкладке "Плагины", а для 4-го - скрипт выделения нужных папок в выделенном списке режима "Файлы на панель" после обычного поиска.Darkenlightener писал(а):но я не совсем понимаю, в чем разница
-
Darkenlightener
- Сообщения: 19
- Зарегистрирован: Сб янв 14, 2012 12:58
Darkenlightener
1. Установить SCP.
2. В директорию плагина положить Script.vbs с содержимым:
3. В script.ini прописать:
4. В диалоге поиска на вкладке "Плагины" ввести последовательно:
script | Result | = | 1
Запустить поиск.
5. После вывода результатов на панель и выделения нужных папок воспользоваться этим скриптом.
Хотя нет, скрипт по ссылке рекомендуется использовать, если нужно оставлять текущее имя папки, а не имя родительской. А как лучше?
1. Установить SCP.
2. В директорию плагина положить Script.vbs с содержимым:
Код: Выделить всё
With CreateObject("Scripting.FileSystemObject")
If .GetFolder(FileName).Files.Count = 0 And .GetFolder(FileName).Subfolders.Count = 1 Then
For Each F in .GetFolder(FileName).Subfolders
If F.Size > 0 Then Content = 1
Next
End If
End WithКод: Выделить всё
[Script]
Section=Dir
[Dir]
Script=Script.vbs
LongName=1
ParseDirs=1script | Result | = | 1
Запустить поиск.
5. После вывода результатов на панель и выделения нужных папок воспользоваться этим скриптом.
Хотя нет, скрипт по ссылке рекомендуется использовать, если нужно оставлять текущее имя папки, а не имя родительской. А как лучше?
-
Darkenlightener
- Сообщения: 19
- Зарегистрирован: Сб янв 14, 2012 12:58
Tol!k
Спасибо, получилось, но выведение на панель удобнее
,
Flasher
Спасибо, поиск работает. Скрипт по ссылке никаких результатов не дал мне, я попробовал. Имя должно остаться родительской папки. Наверное, поиском папок и выведением их на панель пока стоит ограничиться, потому что их все равно приходится просматривать и проверять во второй панели, и автоматическое перемещение не имеет смысла делать. Находятся ведь и такие папки E:\Боевые искусства\Аудио\Шлахтер\Путь Воина. Практики (Шлахтер)\ т.е. обоснованно находящиеся в таком виде (например, к ним потом могут быть добавлены другие папки), а их трогать вообще не нужно. Так что я пока потестирую, может быть, этого и хватит
Спасибо, получилось, но выведение на панель удобнее
Flasher
Спасибо, поиск работает. Скрипт по ссылке никаких результатов не дал мне, я попробовал. Имя должно остаться родительской папки. Наверное, поиском папок и выведением их на панель пока стоит ограничиться, потому что их все равно приходится просматривать и проверять во второй панели, и автоматическое перемещение не имеет смысла делать. Находятся ведь и такие папки E:\Боевые искусства\Аудио\Шлахтер\Путь Воина. Практики (Шлахтер)\ т.е. обоснованно находящиеся в таком виде (например, к ним потом могут быть добавлены другие папки), а их трогать вообще не нужно. Так что я пока потестирую, может быть, этого и хватит
Я для того вопрос и задал. Сейчас посмотрю, что там надо поправить.Darkenlightener писал(а):Скрипт по ссылке никаких результатов не дал мне, я попробовал. Имя должно остаться родительской папки.
Ещё раз:Darkenlightener писал(а):потому что их все равно приходится просматривать и проверять во второй панели, и автоматическое перемещение не имеет смысла делать
Ctrl+Влево/Вправо в зависимости от местоположения результатов, проверил - выделил, проверил - выделил, закончил выделять - воспользовался скриптом.Flasher писал(а):самостоятельно проверить найденные по заданному изначально критерию папки, потом воспользоваться скриптом автоперемещения
-
Darkenlightener
- Сообщения: 19
- Зарегистрирован: Сб янв 14, 2012 12:58
Darkenlightener
Код: Выделить всё
'====================================================
' Перемещение содержимого подкаталогов
' внутри выделенных папок на уровень вверх
' Параметры: %L
'====================================================
With CreateObject("Scripting.FileSystemObject")
Set TempFile = .OpenTextFile(WScript.Arguments(0), 1)
Do While Not TempFile.AtEndOfStream
N = TempFile.ReadLine
If .FolderExists(N) Then
Set FF = .GetFolder(N)
For Each Fd In FF.SubFolders
For Each F In Fd.SubFolders
If Not .FolderExists(N & .GetFileName(F)) Then F.Move N
Next
For Each F In Fd.Files
If Not .FileExists(N & .GetFileName(F)) Then F.Move N
Next
If Fd.Size = 0 Then Fd.Delete
Next
End If
Loop
End With
TempFile.Close
Wscript.Quit
Последний раз редактировалось Flasher Пн янв 16, 2012 14:37, всего редактировалось 4 раза.
-
Darkenlightener
- Сообщения: 19
- Зарегистрирован: Сб янв 14, 2012 12:58
-
Darkenlightener
- Сообщения: 19
- Зарегистрирован: Сб янв 14, 2012 12:58