Разнести файлы по папкам, заполняя их до заданного размера
Модераторы: Моторокер, Avada, CaptainFlint, Nik, d-view
- Ostap Fender
- Сообщения: 35
- Зарегистрирован: Пн июн 19, 2017 16:21
Разнести файлы по папкам, заполняя их до заданного размера
Здравствуйте. Можете создать подобный скрипт?
Имеется Корневая папка с файлами одного формата, (размер папки иногда может достигать терабайт, поэтому и прошу помочь).
-Открываем папку в тоталкомандер в левом окне (сортировка по имени).
Задача: Распределить файлы, начиная с первого, соблюдая алфавитный порядок, по авто создаваемым папкам в правом окне, с присвоением каждой папке имени, начиная с 1 и далее по счётчику ,
с условием, что размер каждой папки не достигнет 2,0 гб, но будет максимально приближен к этому числу.
Имеется Корневая папка с файлами одного формата, (размер папки иногда может достигать терабайт, поэтому и прошу помочь).
-Открываем папку в тоталкомандер в левом окне (сортировка по имени).
Задача: Распределить файлы, начиная с первого, соблюдая алфавитный порядок, по авто создаваемым папкам в правом окне, с присвоением каждой папке имени, начиная с 1 и далее по счётчику ,
с условием, что размер каждой папки не достигнет 2,0 гб, но будет максимально приближен к этому числу.
Последний раз редактировалось Ostap Fender Чт ноя 30, 2017 21:14, всего редактировалось 1 раз.
Ostap Fender
И снова — замечание за нарушение правил форума. Точки и заглавные буквы надо использовать согласно нормам русского языка, а не где вам захочется.
И уберите, пожалуйста, подпись-картинку. Новичкам не следует привлекать внимание к своим постам подобным образом, здесь этим и опытные участники форума не злоупотребляют.
И снова — замечание за нарушение правил форума. Точки и заглавные буквы надо использовать согласно нормам русского языка, а не где вам захочется.
И уберите, пожалуйста, подпись-картинку. Новичкам не следует привлекать внимание к своим постам подобным образом, здесь этим и опытные участники форума не злоупотребляют.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
А средний размер файлов какой? Если мелкий и файлов много, то лучше в эту папку вообще не заходить, если речь идёт только о первом уровне вложенности.Ostap Fender писал(а):размер папки иногда может достигать терабайт
А если первый файл — 1 Гб, второй — 1 Гб, третий — 1 Гб, и т. д., о какой тогда максимальной приближённости может идти речь?Ostap Fender писал(а):... соблюдая алфавитный порядок ...
с условием, что размер каждой папки не достигнет 2,0 гб, но будет максимально приближен к этому числу
В каком смысле "выделяется"? Может, размер для него рассчитывается? Не каждый же файл отдельно выбирать.Ostap Fender писал(а):выделяется следующий файл
В этом нет смысла. Достаточно сравнивать размеры.Ostap Fender писал(а):скрипт делает шаг назад
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
- Ostap Fender
- Сообщения: 35
- Зарегистрирован: Пн июн 19, 2017 16:21
Исправил.Avada писал(а):Ostap Fender
И уберите, пожалуйста, подпись-картинку. .
Последний раз редактировалось Ostap Fender Чт ноя 30, 2017 21:12, всего редактировалось 1 раз.
Ostap Fender
Давайте вы не будете выяснять публично отношения с модератором — это чревато очень нехорошими последствиями. Лучше на заданные вопросы дайте ответ. Что касается подписей у новичков, категорического запрета на это нет, но приемлемость той или иной подписи определяется модераторами, к мнению которых стоит прислушаться. Ваша подпись в нынешнем виде служит единственной цели — дополнительному привлечению внимания. На мой взгляд, избыточному и необоснованному.
Про оверквотинг уже предупреждалось. Упоминание вашего собственного ника в цитате однозначно никому не нужно. А помогать вам будут куда охотнее, если увидят с вашей стороны готовность следовать принятым здесь нормам, даже если некоторые из них не вызывают у вас восторга.
Давайте вы не будете выяснять публично отношения с модератором — это чревато очень нехорошими последствиями. Лучше на заданные вопросы дайте ответ. Что касается подписей у новичков, категорического запрета на это нет, но приемлемость той или иной подписи определяется модераторами, к мнению которых стоит прислушаться. Ваша подпись в нынешнем виде служит единственной цели — дополнительному привлечению внимания. На мой взгляд, избыточному и необоснованному.
Про оверквотинг уже предупреждалось. Упоминание вашего собственного ника в цитате однозначно никому не нужно. А помогать вам будут куда охотнее, если увидят с вашей стороны готовность следовать принятым здесь нормам, даже если некоторые из них не вызывают у вас восторга.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
- Ostap Fender
- Сообщения: 35
- Зарегистрирован: Пн июн 19, 2017 16:21
Файлы в основном маленькие, уровень вложенности первый, формат всегда один .ncwА средний размер файлов какой? Если мелкий и файлов много, то лучше в эту папку вообще не заходить, если речь идёт только о первом уровне вложенности.
Перепаковав сотни библиотек я с таким случаем не встречался. Теоретически возможно- но подряд - Нет.А если первый файл — 1 Гб, второй — 1 Гб, третий — 1 Гб, и т. д., о какой тогда максимальной приближённости может идти речь?
Я описывал как я это делаю в ручную. Изначально я просил просто разложить по папкам, а теперь пришла мысль, чтоб эти папки сразу упаковывались.В каком смысле "выделяется"? Может, размер для него рассчитывается? Не каждый же файл отдельно выбирать.
Unnks extract -это старая модель программы. новая версия называется. inNKX 1.2.1. и он именно для Тотал. являются ли архивы tar?-я не знаю, выходной формат .nkx.
https://cloud.mail.ru/home/bandicam%202 ... 27-452.avi это видео. Можно не раскладывать по папкам сразу, а делать как на видео по одному архиву. Упаковываемая папка должна называться Samples. если же Вы знаете как сразу виртуально раскидать файлы на какие то облачные подкаталоги, которых физически не будет, то плагин может паковать и в несколько потоков, при этом путями и сохранением структуры можно пренебречь. Хотя лично я это не представляю. Ведь плагину необходимы объекты упаковки. Но вы лучше понимаете.
Окончательно я бы сформулировал задачу так.
Разложить файлы по папкам второго уровня с названием Samples, размером 1,99 гб , каждая из которых должна находиться в папке, с именем начиная с номера 2, и далее с увеличением счетчика. При этом последние оставшиеся файлы должны быть помещены в папку Samples, находящуюся в папке 1.
Далее поиск папок с именем Samples, вывод их на панель, выделение всех папок Samples и упаковка сразу всех папок, с применением счетчика, согласно номера корневого каталога пакуемой папки, исключив каталоги верхнего уровня. Должно получиться Samples 1.nkx, Samples 2.nkx и т.д.
Последний раз редактировалось Ostap Fender Чт ноя 30, 2017 21:17, всего редактировалось 1 раз.
В делах скриптовых архиваторным плагинам особо ничего не светит. Поэтому нужна утилита.Ostap Fender писал(а):новая версия называется inNKX 1.2.1. и он именно для Тотал.
Так приложите парочку файликов. Как я узнаю?Ostap Fender писал(а):архивы tar?-я не знаю, выходной формат .nkx
Так вроде перемещение нужно было.Ostap Fender писал(а):если же Вы знаете как сразу виртуально раскидать файлы на какие то облачные подкаталоги, которых физически не будет, то плагин может паковать и в несколько потоков, при этом путями и сохранением структуры можно пренебречь. Хотя лично я это не представляю. Ведь плагину необходимы объекты упаковки.
А пока быстро набросал предварительный вариант с обычным перемещением:
Код: Выделить всё
'================================ 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,_
" Полимитное перемещение файлов в номерные папки "Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
- Ostap Fender
- Сообщения: 35
- Зарегистрирован: Пн июн 19, 2017 16:21
Пара архивов:Так приложите парочку файликов. Как я узнаю?
https://cloud.mail.ru/public/FTYN/7MpmJVpHC
https://cloud.mail.ru/public/LLUE/cpQT4iKaF
Плагин inNKX 1.2.1.
https://cloud.mail.ru/public/3XeZ/gvUa3pize
Хорошая мысля приходит опосля.Так вроде перемещение нужно было ?
Спасибо.А пока быстро набросал предварительный вариант с обычным перемещением:
Разобрался. Самое важное, что 1,99 гб это вовсе не 1990 мб, а 2038,9999999999 мб, я забыл просто.
Последний раз редактировалось Ostap Fender Пт дек 01, 2017 10:34, всего редактировалось 2 раза.
Ostap Fender
Ещё раз: заглавные буквы и точки в концах слов ставятся везде, а не выборочно по желанию. Вы не в чате, и это прямое нарушние правил форума.
Ещё раз: заглавные буквы и точки в концах слов ставятся везде, а не выборочно по желанию. Вы не в чате, и это прямое нарушние правил форума.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Ostap Fender
Увы, но это не tar. Плагин у меня был. Гугл всё ещё работает. Про непригодность его использования в скриптах я писал выше.
Увы, но это не tar. Плагин у меня был. Гугл всё ещё работает. Про непригодность его использования в скриптах я писал выше.
А при чём тут 1990? В исходном посте речь шла о 2Гб, что в переводе 2048 Мб. Вот их и надо писать в параметр.Ostap Fender писал(а):Самое важное, что 1,99 гб это вовсе не 1990 мб
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
- Ostap Fender
- Сообщения: 35
- Зарегистрирован: Пн июн 19, 2017 16:21
О размере, максимально приближенном к 2 гб, но не в коем случае его не достигающем. Спасибо Вам огромное!!! Кнопка пашет на ура. Вы мне облегчили жизнь. 53 гб раскидала по папкам за тройку минут. Жаль, что я не обратился к вам, когда паковал размер 220 гб. А по поводу ошибок в написании - я исправлюсь.(Это я модераторам) Хотя по моему на сайте слишком маленькое окно, и отображаемый шрифт, где сообщения пишут.Flasher писал(а):В исходном посте речь шла о 2Гб, что в переводе 2048 Мб. Вот их и надо писать в параметр.
Последний раз редактировалось Ostap Fender Вс дек 03, 2017 19:14, всего редактировалось 2 раза.
Ostap Fender
Я прекрасно понял то, о чём написано в исходном посте. В параметре задаётся не максимальный предел, а уже недопустимый. Т.е. при достижении суммы в 2048 Мб (2147483648 байт) файл пойдёт в новую папку. При сумме в 2147483647 байт файл останется в текущей.
Пож-та.
Я прекрасно понял то, о чём написано в исходном посте. В параметре задаётся не максимальный предел, а уже недопустимый. Т.е. при достижении суммы в 2048 Мб (2147483648 байт) файл пойдёт в новую папку. При сумме в 2147483647 байт файл останется в текущей.
Пож-та.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
- Ostap Fender
- Сообщения: 35
- Зарегистрирован: Пн июн 19, 2017 16:21
Какую дать маску в этом случае для массового архивирования?Flasher писал(а):Пож-та.
Последний раз редактировалось Ostap Fender Вс дек 03, 2017 19:14, всего редактировалось 3 раза.
- Ostap Fender
- Сообщения: 35
- Зарегистрирован: Пн июн 19, 2017 16:21