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 

Перемещение/копирование 250 файлов из каждой подпапки
Goto page 1, 2, 3, 4  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
BeardFury78



Joined: 25 Aug 2016
Posts: 164

Post (Separately) Posted: Sun Mar 05, 2017 19:58    Post subject: Перемещение/копирование 250 файлов из каждой подпапки Reply with quote

Нужен скрипт, который может переместить или копировать определенное количество файлов (в данном случае, это 250 файлов) из каждой подпапки в активной панели в пассивную с сохранением структуры папок (не полной, сохранять нужно только подпапки). Причем перемещаются/копируются файлы из подпапках только со самыми свежими датами модификации среди остальных файлов. Хотелось бы дополнительно иметь возможность в параметрах выбирать режим перемещения или копирования, там же задавать количество копируемых/перемещаемых файлов. Буду очень благодарен за помощь. Если нужно, могу пояснить для чего это мне нужно.

Last edited by BeardFury78 on Sun Mar 05, 2017 23:20; edited 5 times in total
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sun Mar 05, 2017 22:16    Post subject: Reply with quote

BeardFury78
Что мешает промежуточную цель сменить конечной?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 164

Post (Separately) Posted: Sun Mar 05, 2017 22:24    Post subject: Reply with quote

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



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

Post (Separately) Posted: Sun Mar 05, 2017 22:35    Post subject: Reply with quote

BeardFury78
Конечно.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 164

Post (Separately) Posted: Sun Mar 05, 2017 22:38    Post subject: Reply with quote

Flasher
Стоит ли мне создать новую тему в "Автоматизации" или ждать, когда модератор переместит эту тему туда?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sun Mar 05, 2017 22:39    Post subject: Reply with quote

BeardFury78
Ждать. Но тему с заголовком лучше сразу привести к конечной цели.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 164

Post (Separately) Posted: Sun Mar 05, 2017 23:21    Post subject: Reply with quote

Flasher
Отредактировал.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 8532
Location: Россия, Саратов

Post (Separately) Posted: Mon Mar 06, 2017 06:47    Post subject: Reply with quote

Перенесено в "Автоматизацию".
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Mon Mar 06, 2017 18:31    Post subject: Reply with quote

BeardFury78
Code:
'==================================================================================
' Копирование/перемещение заданного числа изменённых последними файлов из
' подкаталога структуры выбранных папок с сохранением относительных путей

' Условие: путь запуска - пустой

' Параметры: %WL "<путь получателя>" <число файлов> <copy/move> <флаг рекурсии: 1>
' Примеры:   %WL "%T" 250 copy 1  |  %WL "C:\Мой каталог" 10 move
'==================================================================================

With WSH.Arguments
  C = .Count : If C = 0 Then WSH.Quit
  If C < 4 Then MsgBox "Укажите 4 или 5 параметров!", 4144 : WSH.Quit
  List = .Item(0) : Path = .Item(1) : Cnt = .Item(2) : Act = .Item(3)
  If C = 5 Then Rec = .Item(4)
End With : If LCase(Act) = "copy" Then Par = ", True"

Set Targ = CreateObject("Shell.Application").NameSpace(Path)
Set Sort = CreateObject("System.Collections.Sortedlist")
Set FSO  = CreateObject("Scripting.FileSystemObject")
IPath = FSO.GetAbsolutePathName("")
If FSO.BuildPath(IPath, "\") = FSO.BuildPath(Path, "\") Then WSH.Quit
Ln = Len(IPath) + 2 : Set List = FSO.OpenTextFile(List,,,-1)
Do : Fold = List.ReadLine
  If FSO.FolderExists(Fold) Then ForFolder Fold
Loop Until List.AtEndOfStream : List.Close
If lCase(Act) = "copy" Then Act = " Копирование" Else Act = " Перемещение"
MsgBox Space(26) & "Выполнено!", 4160, Act & " изменённых последними файлов      "

Sub ForFolder(Fd)
  Set IFold = FSO.GetFolder(Fd)
  For Each F In IFold.Files
    Sort.Add DateDiff("s", 0, F.DateLastModified) & F.Name, F.Name
  Next : DLimit = Sort.Count
  If DLimit Then
    RPath = FSO.BuildPath(FSO.BuildPath(Path, Mid(Fd, Ln)), "\")
    If Not FSO.FolderExists(RPath) Then Targ.NewFolder(Mid(IFold.Path, Ln))
    ULimit = DLimit - Cnt : If ULimit < 0 Then ULimit = 0
    For i = DLimit - 1 To ULimit Step -1
      Set File = FSO.GetFile(FSO.BuildPath(Fd, Sort.GetByIndex(i)))
      If Not (FSO.FileExists(RPath & File.Name) And _
      (File.Attributes And 1) = 1) Then Execute "File." & Act & " RPath" & Par
    Next : Sort.Clear
  End If : If Rec = 1 Then For Each F in IFold.SubFolders : ForFolder F : Next
End Sub

BeardFury78 wrote:
Если нужно, могу пояснить для чего это мне нужно.
Желательно.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 164

Post (Separately) Posted: Mon Mar 06, 2017 19:04    Post subject: Reply with quote

Flasher
Скрипт работает отлично, все так как я хотел. Теперь объясню для чего это мне было нужно. Есть у меня сотни галерей - хороших или плохих - с тысячами изображений внутри, вкупе это все сотни тысячи изображений. Нужен был способ быстро определить плохие по качеству галереи и их удалять. Для этого есть эскизы, чтобы можно было зайти в папку и на глазок определить примерное качество контента в галереях. Проблема в том, что эскизы в ТС рисуются слишком медленно, к тому же навигация по папкам на компьютере слишком утомительная. На планшете - самое оно, удобно просматривать изображения, есть там вьюверы, очень быстро рисующие эскизы, можно просматривать папки, удалять "плохие" и скопировать список оставших "хороших" папок и на компьютере уже с помощью списка провести очистку. Проблема была в том, что на планшете не было возможности запихнуть все галереи, объем памяти ограничен несколько гигабайтами, можно было лишь часть галерей переместить, но не нашел способа как это сделать, обратился здесь с помощью и вот вы мне помогли! Спасибо вам за помощь!
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Mon Mar 06, 2017 19:27    Post subject: Reply with quote

BeardFury78
ПОж-та. Но я так и не понял, зачем перемещать именно изменённые последними файлы?

BeardFury78 wrote:
эскизы в ТС рисуются слишком медленно
Даже с этим?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 164

Post (Separately) Posted: Mon Mar 06, 2017 19:42    Post subject: Reply with quote

Flasher
Просто галереи все скачаны из одного сайта, есть специальная программа, которая сканирует от и до все страницы галерей на этом сайте и скачивает первыми именно старые изображения (то есть те, которые стоят на последних страницах галерей) в галереях, а заканчивает на первых изображениях, которые стоят на первых страницах (то есть, наиболее новые), соответственно именно эти файлы имеют последние даты модификации и именно эти файлы для меня более актуальные. А дата создания не подходит, почему-то у некоторых файлов дата создания берется от даты размещения на веб-галереях, а у других от времени скачивания на компьютере, поэтому выходит путаница...
Quote:
Даже с этим?

У меня Тотал 64bit, не получится установить.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Mon Mar 06, 2017 19:58    Post subject: Reply with quote

BeardFury78
ОК. Ясно.
Ну, никто не мешает иметь комбинированный ТС, чтобы обе версии использовать по мере необходимости. Это всяко проще, чем комбинировать с планшетом. Wink
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 164

Post (Separately) Posted: Mon Mar 06, 2017 20:03    Post subject: Reply with quote

Flasher
Можно. Но все равно в части просмотра изображений и эскизов планшет для меня поудобнее компьютера. Smile
Back to top
View user's profile Send private message
BeardFury78



Joined: 25 Aug 2016
Posts: 164

Post (Separately) Posted: Sun Jun 18, 2017 21:58    Post subject: Reply with quote

Теперь появилась нужда перемещать файлы с старейшими датами модификации среди остальных файлов в папках. Какие правки для этого нужно внести в скрипт? Спасибо!

P.S. Добрый человек в ЛС уже подсказал, что нужно править в скрипте, для этого нужно в строке
Quote:
Sort.Add DateDiff("s", 0, F.DateLastModified) & F.Name, F.Name

вместо "0" поставить большое число, например "2958465".
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 1, 2, 3, 4  Next
Page 1 of 4

 
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