View previous topic :: View next topic |
Author |
Message |
Ostap Fender
Joined: 19 Jun 2017 Posts: 35
|
(Separately) Posted: Fri Nov 03, 2017 02:47 Post subject: Разнести файлы по папкам, заполняя их до заданного размера |
|
|
Здравствуйте. Можете создать подобный скрипт?
Имеется Корневая папка с файлами одного формата, (размер папки иногда может достигать терабайт, поэтому и прошу помочь).
-Открываем папку в тоталкомандер в левом окне (сортировка по имени).
Задача: Распределить файлы, начиная с первого, соблюдая алфавитный порядок, по авто создаваемым папкам в правом окне, с присвоением каждой папке имени, начиная с 1 и далее по счётчику ,
с условием, что размер каждой папки не достигнет 2,0 гб, но будет максимально приближен к этому числу.
Last edited by Ostap Fender on Thu Nov 30, 2017 22:14; edited 1 time in total |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10319 Location: Россия, Саратов
|
(Separately) Posted: Wed Nov 15, 2017 18:11 Post subject: |
|
|
Ostap Fender
И снова — замечание за нарушение правил форума. Точки и заглавные буквы надо использовать согласно нормам русского языка, а не где вам захочется.
И уберите, пожалуйста, подпись-картинку. Новичкам не следует привлекать внимание к своим постам подобным образом, здесь этим и опытные участники форума не злоупотребляют. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Wed Nov 15, 2017 18:51 Post subject: |
|
|
Ostap Fender wrote: | размер папки иногда может достигать терабайт | А средний размер файлов какой? Если мелкий и файлов много, то лучше в эту папку вообще не заходить, если речь идёт только о первом уровне вложенности.
Ostap Fender wrote: | ... соблюдая алфавитный порядок ...
с условием, что размер каждой папки не достигнет 2,0 гб, но будет максимально приближен к этому числу | А если первый файл — 1 Гб, второй — 1 Гб, третий — 1 Гб, и т. д., о какой тогда максимальной приближённости может идти речь?
Ostap Fender wrote: | выделяется следующий файл | В каком смысле "выделяется"? Может, размер для него рассчитывается? Не каждый же файл отдельно выбирать.
Ostap Fender wrote: | скрипт делает шаг назад | В этом нет смысла. Достаточно сравнивать размеры. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Ostap Fender
Joined: 19 Jun 2017 Posts: 35
|
(Separately) Posted: Sat Nov 18, 2017 14:26 Post subject: |
|
|
Avada wrote: | Ostap Fender
И уберите, пожалуйста, подпись-картинку. . |
Исправил.
Last edited by Ostap Fender on Thu Nov 30, 2017 22:12; edited 1 time in total |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10319 Location: Россия, Саратов
|
(Separately) Posted: Sat Nov 18, 2017 15:30 Post subject: |
|
|
Ostap Fender
Давайте вы не будете выяснять публично отношения с модератором — это чревато очень нехорошими последствиями. Лучше на заданные вопросы дайте ответ. Что касается подписей у новичков, категорического запрета на это нет, но приемлемость той или иной подписи определяется модераторами, к мнению которых стоит прислушаться. Ваша подпись в нынешнем виде служит единственной цели — дополнительному привлечению внимания. На мой взгляд, избыточному и необоснованному.
Про оверквотинг уже предупреждалось. Упоминание вашего собственного ника в цитате однозначно никому не нужно. А помогать вам будут куда охотнее, если увидят с вашей стороны готовность следовать принятым здесь нормам, даже если некоторые из них не вызывают у вас восторга. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Ostap Fender
Joined: 19 Jun 2017 Posts: 35
|
(Separately) Posted: Wed Nov 29, 2017 23:17 Post subject: |
|
|
Quote: | А средний размер файлов какой? Если мелкий и файлов много, то лучше в эту папку вообще не заходить, если речь идёт только о первом уровне вложенности. |
Файлы в основном маленькие, уровень вложенности первый, формат всегда один .ncw
Quote: | А если первый файл — 1 Гб, второй — 1 Гб, третий — 1 Гб, и т. д., о какой тогда максимальной приближённости может идти речь? |
Перепаковав сотни библиотек я с таким случаем не встречался. Теоретически возможно- но подряд - Нет.
Quote: |
В каком смысле "выделяется"? Может, размер для него рассчитывается? Не каждый же файл отдельно выбирать. |
Я описывал как я это делаю в ручную. Изначально я просил просто разложить по папкам, а теперь пришла мысль, чтоб эти папки сразу упаковывались.
Unnks extract -это старая модель программы. новая версия называется. inNKX 1.2.1. и он именно для Тотал. являются ли архивы tar?-я не знаю, выходной формат .nkx.
https://cloud.mail.ru/home/bandicam%202017-11-29%2021-37-27-452.avi это видео. Можно не раскладывать по папкам сразу, а делать как на видео по одному архиву. Упаковываемая папка должна называться Samples. если же Вы знаете как сразу виртуально раскидать файлы на какие то облачные подкаталоги, которых физически не будет, то плагин может паковать и в несколько потоков, при этом путями и сохранением структуры можно пренебречь. Хотя лично я это не представляю. Ведь плагину необходимы объекты упаковки. Но вы лучше понимаете.
Окончательно я бы сформулировал задачу так.
Разложить файлы по папкам второго уровня с названием Samples, размером 1,99 гб , каждая из которых должна находиться в папке, с именем начиная с номера 2, и далее с увеличением счетчика. При этом последние оставшиеся файлы должны быть помещены в папку Samples, находящуюся в папке 1.
Далее поиск папок с именем Samples, вывод их на панель, выделение всех папок Samples и упаковка сразу всех папок, с применением счетчика, согласно номера корневого каталога пакуемой папки, исключив каталоги верхнего уровня. Должно получиться Samples 1.nkx, Samples 2.nkx и т.д.
Last edited by Ostap Fender on Thu Nov 30, 2017 22:17; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 30, 2017 00:59 Post subject: |
|
|
Ostap Fender wrote: | новая версия называется inNKX 1.2.1. и он именно для Тотал. | В делах скриптовых архиваторным плагинам особо ничего не светит. Поэтому нужна утилита.
Ostap Fender wrote: | архивы tar?-я не знаю, выходной формат .nkx | Так приложите парочку файликов. Как я узнаю?
Ostap Fender wrote: | если же Вы знаете как сразу виртуально раскидать файлы на какие то облачные подкаталоги, которых физически не будет, то плагин может паковать и в несколько потоков, при этом путями и сохранением структуры можно пренебречь. Хотя лично я это не представляю. Ведь плагину необходимы объекты упаковки. | Так вроде перемещение нужно было. А виртуальный вариант - это точки повторной обработки, симлинки или жёсткие ссылки. К перемещению это не относится, так как нужны источники. Но при создании архивов и это может не понадобиться, если упаковщик позволяет добавлять в архив файлы в заданные подпапки. Только в данном случае уже я не представляю, какой смысл в пренебрежении ими.
А пока быстро набросал предварительный вариант с обычным перемещением: Code: | '================================ VBS =================================
' Перемещение выбранных файлов в создаваемые папки с номерными именами,
' разбивая их по группам в рамках заданного лимита суммарного размера
' Параметры: %WL "<путь получателя>" <верхний лимит размера папок в Мб>
' Ключ добавки цепочки подкаталогов: /chain:<цепочка>
' Ключ смены начала счётчика с единицы на двойку: /2
' Примеры: %WL "%T" 100
' %WL "%P" 1000 /2
' %WL "%T" 2000 /chain:NewFolder
' %WL "%P" 4000 /chain:"Folder 1\Folder 2\Folder 3" /2
Option Explicit
'========= Минимальное число цифр в именах создаваемых папок ==========
Const Num = 1
'======================================================================
Dim C, i, Chain, List, Targ, Sum, FSO, oDisk, F, Size, Folder
With WSH.Arguments
If .UnNamed.Count = 0 Then WSH.Quit
If .Named.Exists("2") Then i = 2 Else i = 1
List = .Item(0) : Targ = .Item(1) : Sum = .Item(2) * 1048576
If .Named.Exists("chain") Then Chain = "\" & .Named("chain")
End With: Set FSO = CreateObject("Scripting.FileSystemObject")
Set oDisk = CreateObject("Shell.Application").NameSpace(FSO.GetDriveName(Targ))
With FSO.OpenTextFile(List,,,-1)
Do : F = Trim(.ReadLine)
If FSO.FileExists(F) Then
Set F = FSO.GetFile(F) : Size = Size + F.Size
If Size >= Sum Then Size = F.Size : i = i + 1
If Size = F.Size Then _
Folder = FSO.BuildPath(Targ, Right(String(Num - 1,"0") &_
i, Num)) & Chain : oDisk.NewFolder Mid(Folder, 4)
F.Move Folder & "\"
End If
Loop Until .AtEndOfStream : .Close
End With
MsgBox Space(18) & " Выполнено!", 4160,_
" Полимитное перемещение файлов в номерные папки " |
P. S.: Очень советую не игнорировать ЦУ. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Ostap Fender
Joined: 19 Jun 2017 Posts: 35
|
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10319 Location: Россия, Саратов
|
(Separately) Posted: Thu Nov 30, 2017 21:44 Post subject: |
|
|
Ostap Fender
Ещё раз: заглавные буквы и точки в концах слов ставятся везде, а не выборочно по желанию. Вы не в чате, и это прямое нарушние правил форума. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 30, 2017 21:59 Post subject: |
|
|
Ostap Fender
Увы, но это не tar. Плагин у меня был. Гугл всё ещё работает. Про непригодность его использования в скриптах я писал выше.
Ostap Fender wrote: | Самое важное, что 1,99 гб это вовсе не 1990 мб | А при чём тут 1990? В исходном посте речь шла о 2Гб, что в переводе 2048 Мб. Вот их и надо писать в параметр. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Ostap Fender
Joined: 19 Jun 2017 Posts: 35
|
(Separately) Posted: Thu Nov 30, 2017 22:24 Post subject: |
|
|
Flasher wrote: | В исходном посте речь шла о 2Гб, что в переводе 2048 Мб. Вот их и надо писать в параметр. | О размере, максимально приближенном к 2 гб, но не в коем случае его не достигающем. Спасибо Вам огромное!!! Кнопка пашет на ура. Вы мне облегчили жизнь. 53 гб раскидала по папкам за тройку минут. Жаль, что я не обратился к вам, когда паковал размер 220 гб. А по поводу ошибок в написании - я исправлюсь.(Это я модераторам) Хотя по моему на сайте слишком маленькое окно, и отображаемый шрифт, где сообщения пишут.
Last edited by Ostap Fender on Sun Dec 03, 2017 20:14; edited 2 times in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 30, 2017 22:31 Post subject: |
|
|
Ostap Fender
Я прекрасно понял то, о чём написано в исходном посте. В параметре задаётся не максимальный предел, а уже недопустимый. Т.е. при достижении суммы в 2048 Мб (2147483648 байт) файл пойдёт в новую папку. При сумме в 2147483647 байт файл останется в текущей.
Пож-та. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Ostap Fender
Joined: 19 Jun 2017 Posts: 35
|
(Separately) Posted: Thu Nov 30, 2017 23:09 Post subject: |
|
|
Какую дать маску в этом случае для массового архивирования?
Last edited by Ostap Fender on Sun Dec 03, 2017 20:14; edited 3 times in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Nov 30, 2017 23:48 Post subject: |
|
|
Ostap Fender
Маска ничего не решает. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Ostap Fender
Joined: 19 Jun 2017 Posts: 35
|
(Separately) Posted: Sat Dec 02, 2017 21:57 Post subject: |
|
|
Flasher wrote: | Маска ничего не решает. |
Понял. |
|
Back to top |
|
|
|
|
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
|