Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Удаление в 50 каталогах лишних папок, с сохранением файлов
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sat Jan 14, 2012 17:40    Post subject: Reply with quote

А что "интересно" ? Вывести на панель?
Чтобы доверять автоматике перемещение, нужно быть уверенным на 120%
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jan 14, 2012 17:44    Post subject: Reply with quote

Вообще-то я варианты выше написал. Список - это слишком просто..
Back to top
View user's profile Send private message
Darkenlightener



Joined: 14 Jan 2012
Posts: 19

Post (Separately) Posted: Sat Jan 14, 2012 18:26    Post subject: Reply with quote

Flasher wrote:
А это ни о чём не говорит?:
Flasher wrote:
проще один из имеющихся скриптов перемещения на уровень вверх подлатать

Это меня навело на мысль, но, как я уже сказал, в скриптах не силен

Flasher wrote:
Я вижу пока следующие пути решения вопроса:
1) Поскольку при распаковке имя директории соответвует базовому имени архива, можно сравнивать её имя с именем находящейся внутри неё директории, допустим, по каким-то первым символам, и если они совпадают, то содержимое должно перемещаться наверх. Тут же можно проверять наличии файлов с определённым расширением.
2) Распаковать все архивы заново с присвоением одинакового комментария папкам. По тому комментарию отслеживать папки с вышеописанными условиями и перемещать.

Не годятся, т.к. все архивы уже распакованы, а называются папки непредсказуемо, названия вложенных вообще могут не совпадать с названием корневой.

Flasher wrote:
3) Организовать поиск через Script Content Plugin, самостоятельно проверить найденные по заданному изначально критерию папки, потом воспользоваться скриптом автоперемещения.
4) Воспользоваться обычным поиском папок с заданной глубиной расположения этих распакованных директорий. Задача скрипта будет выделить нужные папки для самостоятельной проверки на пригодность для последующего перемещения наверх.

Наверное, один из этих способов, но я не совсем понимаю, в чем разница. Точно могу сказать, что автоперемещение можно применять только после ручной проверки найденных папок. Иначе может получиться, например, что файлы из папки "Иванов, А.\Вечный зов" переместятся в папку "Иванов, А.", а этого мне не надо.
Tol!k
Наверное, этот скрипт подойдет, но как его можно доработать, чтобы я мог вручную изменять уровень вложенности, на котором надо искать?

Идеальное решение, наверное, поиск всех таких папок, проверка, отбор нужных и автоперемещение, т.е. способ 3 или 4, но я не могу выбрать нужный по причине ламерства Sad
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jan 14, 2012 18:44    Post subject: Reply with quote

Darkenlightener wrote:
а называются папки непредсказуемо
Это плохо.
Darkenlightener wrote:
но я не совсем понимаю, в чем разница
В способе поиска, и, соответсвенно, в получении результатов. Для 3-го варианта нужно писать контент-скрипт для указанного плагина с последующим подставлением данных на вкладке "Плагины", а для 4-го - скрипт выделения нужных папок в выделенном списке режима "Файлы на панель" после обычного поиска.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sat Jan 14, 2012 19:00    Post subject: Reply with quote

Darkenlightener wrote:
как его можно доработать, чтобы я мог вручную изменять уровень вложенности, на котором надо искать?(
ищется от текущей и глубже
Back to top
View user's profile Send private message
Darkenlightener



Joined: 14 Jan 2012
Posts: 19

Post (Separately) Posted: Sat Jan 14, 2012 19:12    Post subject: Reply with quote

Tol!k
Скрипт я скопировал, запустил, TC сообщает:

"Cцeнapий: e:\Пecoчницa\backup\Toлькo 1 пaпкa и 0 фaйлoв нa пepвoм ypoвнe влoжeннocти.vbs
Cтpoкa: 1
Cимвoл: 1
Oшибкa: Heдoпycтимый знaк
Кoд: 800A0408
Иcтoчник: Oшибкa кoмпиляции Microsoft VBScript"

Что делать?
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sat Jan 14, 2012 19:17    Post subject: Reply with quote

сохранить с расш. .cmd
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jan 14, 2012 20:16    Post subject: Reply with quote

Darkenlightener
1. Установить SCP.
2. В директорию плагина положить Script.vbs с содержимым:
Code:
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

3. В script.ini прописать:
Code:
[Script]
Section=Dir

[Dir]
Script=Script.vbs
LongName=1
ParseDirs=1

4. В диалоге поиска на вкладке "Плагины" ввести последовательно:
script | Result | = | 1
Запустить поиск.
5. После вывода результатов на панель и выделения нужных папок воспользоваться этим скриптом.
Хотя нет, скрипт по ссылке рекомендуется использовать, если нужно оставлять текущее имя папки, а не имя родительской. А как лучше?
Back to top
View user's profile Send private message
Darkenlightener



Joined: 14 Jan 2012
Posts: 19

Post (Separately) Posted: Sat Jan 14, 2012 20:51    Post subject: Reply with quote

Tol!k
Спасибо, получилось, но выведение на панель удобнее Wink ,

Flasher
Спасибо, поиск работает. Скрипт по ссылке никаких результатов не дал мне, я попробовал. Имя должно остаться родительской папки. Наверное, поиском папок и выведением их на панель пока стоит ограничиться, потому что их все равно приходится просматривать и проверять во второй панели, и автоматическое перемещение не имеет смысла делать. Находятся ведь и такие папки E:\Боевые искусства\Аудио\Шлахтер\Путь Воина. Практики (Шлахтер)\ т.е. обоснованно находящиеся в таком виде (например, к ним потом могут быть добавлены другие папки), а их трогать вообще не нужно. Так что я пока потестирую, может быть, этого и хватит Very Happy
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jan 14, 2012 20:58    Post subject: Reply with quote

Darkenlightener wrote:
Скрипт по ссылке никаких результатов не дал мне, я попробовал. Имя должно остаться родительской папки.
Я для того вопрос и задал. Сейчас посмотрю, что там надо поправить.

Darkenlightener wrote:
потому что их все равно приходится просматривать и проверять во второй панели, и автоматическое перемещение не имеет смысла делать
Ещё раз:
Flasher wrote:
самостоятельно проверить найденные по заданному изначально критерию папки, потом воспользоваться скриптом автоперемещения
Ctrl+Влево/Вправо в зависимости от местоположения результатов, проверил - выделил, проверил - выделил, закончил выделять - воспользовался скриптом.
Back to top
View user's profile Send private message
Darkenlightener



Joined: 14 Jan 2012
Posts: 19

Post (Separately) Posted: Sat Jan 14, 2012 21:16    Post subject: Reply with quote

Flasher
Снимаю шляпу)) Чувствую себя как курсант из анекдота "Говорили дураку — учи, учи!!!"

Я столько лет мечтал о такой функции как Ctrl+Влево/Вправо, а в справке посмотреть не догадался((

Тогда конечно, все меняется и можно применять автоматическое перемещение.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jan 14, 2012 21:50    Post subject: Reply with quote

Darkenlightener
Code:
'====================================================
' Перемещение содержимого подкаталогов
' внутри выделенных папок на уровень вверх

' Параметры: %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


Last edited by Flasher on Mon Jan 16, 2012 14:37; edited 4 times in total
Back to top
View user's profile Send private message
Darkenlightener



Joined: 14 Jan 2012
Posts: 19

Post (Separately) Posted: Sat Jan 14, 2012 22:04    Post subject: Reply with quote

Flasher
Не срабатывает. Нахожу папки, выделяю, запускаю скрипт, никаких результатов(((
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jan 14, 2012 22:08    Post subject: Reply with quote

Darkenlightener
Нужно после выполнения посмотреть содержимое выделенных папок, можно по всё тому же "новоиспечённому" методу. Wink
Кстати, забыл убрать из скрипта вывод окна, сделано.
Back to top
View user's profile Send private message
Darkenlightener



Joined: 14 Jan 2012
Posts: 19

Post (Separately) Posted: Sat Jan 14, 2012 22:19    Post subject: Reply with quote

Flasher
Я просто в них захожу после выполнения скрипта, никаких изменений.

Скрипт скопировал заново, окно командной строки все равно выскакивает, если вы про него.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5, 6, 7, 8  Next
Page 5 of 8

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group