View previous topic :: View next topic |
Author |
Message |
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Sun Mar 05, 2017 19:58 Post subject: Перемещение/копирование 250 файлов из каждой подпапки |
|
|
Нужен скрипт, который может переместить или копировать определенное количество файлов (в данном случае, это 250 файлов) из каждой подпапки в активной панели в пассивную с сохранением структуры папок (не полной, сохранять нужно только подпапки). Причем перемещаются/копируются файлы из подпапках только со самыми свежими датами модификации среди остальных файлов. Хотелось бы дополнительно иметь возможность в параметрах выбирать режим перемещения или копирования, там же задавать количество копируемых/перемещаемых файлов. Буду очень благодарен за помощь. Если нужно, могу пояснить для чего это мне нужно.
Last edited by BeardFury78 on Sun Mar 05, 2017 23:20; edited 5 times in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Mar 05, 2017 22:16 Post subject: |
|
|
BeardFury78
Что мешает промежуточную цель сменить конечной? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Sun Mar 05, 2017 22:24 Post subject: |
|
|
Flasher
Ничего не мешает, просто я не знаю как добиться этих целей (что промежуточной, что конечной без промежуточной). Наверное это только через автоматизацию можно прямо добиться конечной цели. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Mar 05, 2017 22:35 Post subject: |
|
|
BeardFury78
Конечно. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Sun Mar 05, 2017 22:38 Post subject: |
|
|
Flasher
Стоит ли мне создать новую тему в "Автоматизации" или ждать, когда модератор переместит эту тему туда? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Mar 05, 2017 22:39 Post subject: |
|
|
BeardFury78
Ждать. Но тему с заголовком лучше сразу привести к конечной цели. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Sun Mar 05, 2017 23:21 Post subject: |
|
|
Flasher
Отредактировал. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10315 Location: Россия, Саратов
|
(Separately) Posted: Mon Mar 06, 2017 06:47 Post subject: |
|
|
Перенесено в "Автоматизацию". _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Mar 06, 2017 18:31 Post subject: |
|
|
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 |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Mon Mar 06, 2017 19:04 Post subject: |
|
|
Flasher
Скрипт работает отлично, все так как я хотел. Теперь объясню для чего это мне было нужно. Есть у меня сотни галерей - хороших или плохих - с тысячами изображений внутри, вкупе это все сотни тысячи изображений. Нужен был способ быстро определить плохие по качеству галереи и их удалять. Для этого есть эскизы, чтобы можно было зайти в папку и на глазок определить примерное качество контента в галереях. Проблема в том, что эскизы в ТС рисуются слишком медленно, к тому же навигация по папкам на компьютере слишком утомительная. На планшете - самое оно, удобно просматривать изображения, есть там вьюверы, очень быстро рисующие эскизы, можно просматривать папки, удалять "плохие" и скопировать список оставших "хороших" папок и на компьютере уже с помощью списка провести очистку. Проблема была в том, что на планшете не было возможности запихнуть все галереи, объем памяти ограничен несколько гигабайтами, можно было лишь часть галерей переместить, но не нашел способа как это сделать, обратился здесь с помощью и вот вы мне помогли! Спасибо вам за помощь! |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Mar 06, 2017 19:27 Post subject: |
|
|
BeardFury78
ПОж-та. Но я так и не понял, зачем перемещать именно изменённые последними файлы?
BeardFury78 wrote: | эскизы в ТС рисуются слишком медленно | Даже с этим? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Mon Mar 06, 2017 19:42 Post subject: |
|
|
Flasher
Просто галереи все скачаны из одного сайта, есть специальная программа, которая сканирует от и до все страницы галерей на этом сайте и скачивает первыми именно старые изображения (то есть те, которые стоят на последних страницах галерей) в галереях, а заканчивает на первых изображениях, которые стоят на первых страницах (то есть, наиболее новые), соответственно именно эти файлы имеют последние даты модификации и именно эти файлы для меня более актуальные. А дата создания не подходит, почему-то у некоторых файлов дата создания берется от даты размещения на веб-галереях, а у других от времени скачивания на компьютере, поэтому выходит путаница...
У меня Тотал 64bit, не получится установить. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Mar 06, 2017 19:58 Post subject: |
|
|
BeardFury78
ОК. Ясно.
Ну, никто не мешает иметь комбинированный ТС, чтобы обе версии использовать по мере необходимости. Это всяко проще, чем комбинировать с планшетом. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Mon Mar 06, 2017 20:03 Post subject: |
|
|
Flasher
Можно. Но все равно в части просмотра изображений и эскизов планшет для меня поудобнее компьютера. |
|
Back to top |
|
|
BeardFury78
Joined: 25 Aug 2016 Posts: 213
|
(Separately) Posted: Sun Jun 18, 2017 21:58 Post subject: |
|
|
Теперь появилась нужда перемещать файлы с старейшими датами модификации среди остальных файлов в папках. Какие правки для этого нужно внести в скрипт? Спасибо!
P.S. Добрый человек в ЛС уже подсказал, что нужно править в скрипте, для этого нужно в строке
Quote: | Sort.Add DateDiff("s", 0, F.DateLastModified) & F.Name, F.Name |
вместо "0" поставить большое число, например "2958465". |
|
Back to top |
|
|
|