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 

Single Post  Topic: Разнести файлы по папкам, заполняя их до заданного размера 
Author Message
Bronseva



PostPosted: Thu Dec 15, 2022 22:26    Post subject: Reply with quote

Flasher wrote:
А пока быстро набросал предварительный вариант с обычным перемещением:

Благодарю, этот скрипт очень помог. Однако выполнение его протекало не вполне ожидаемым образом. Поскольку я не знаю ничего о скриптах, кроме совсем базовых вещей типа «создать кнопку и повесить на неё вот этот VBA с параметром», что именно в нём поправить, чтобы работал как предполагается, я не сообразил.

Задача:
Приблизительно 35 тысяч файлов расположены в одной папке без подкаталогов, общий размер порядка 370 Гб.
Нужно перемещением раскидать эти файлы в подпапки, которые будут создаваться здесь же.
Максимальный размер получаемой подпапки не должен превышать 4 Гб.

Как я понял, %WL "<путь получателя>" <верхний лимит размера папок в Мб> нужно использовать в параметре кнопки на панели TC, поэтому я нажал «изменить» кнопку и в поле «параметр» вбил:
Code:
%WL "%T" 4000

Далее все файлы распределились по десяти папкам, и каждая папка весит примерно по 35-40 Гб. Я перепроверил — в скрипте идёт Sum = .Item(2) * 1048576, то есть при параметре 4000 должно получаться 4 Гб, но не 40 Гб. Переместил файлы обратно, и попробовал для проверки разместить их теперь с параметром:
Code:
%WL "%T" 400

К моему удивлению результат был идентичным — все файлы спокойно распределялись ровно по тем же десяти 40 Гб папкам с номерами от 0 до 9 включительно. Зашел в получившуюся подпапку с ~3500 файлами и применил тот же скрипт с той же настройкой. К моему повторному удивлению, я получил новые 10 папок, которые на этот раз имели правильный размер, укладывающийся в 4 Гб. Не имея возможности разобраться со скриптом с разбегу, я провернул данную операцию ещё девять раз и в итоге получил 90 папок, не превышающих размером 4 Гб.

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

Есть определённые подозрения о появляющихся 10 папках. Каждый раз их было десять. На другом наборе данных, например 23 файла по 1-3 Гб, скрипт с теми же параметрами создаёт всё те же 10 папок и аккуратно разбрасывает файлы по всем десяти. Ещё на одном наборе данных — 293 файла на 97 Гб, размером от 1 Кб до 6 Гб — скрипт снова раскидывает всё по десяти папкам. Чувствую себя в лыжах.

Код взят без изменений из спойлера вот в шестом сообщении текущей темы и сохранён как 'названиефайла.vbs'. Моя задача успешно выполнена, но осталось любопытство — что я сделал не так, или чего не понял.

ПС. Регистрация на форуме что-то поломалась, и на gmail не приходит письмо с активацией, спам проверил, разумеется. Не смог найти списка проблем с регистрацией или ограничений, но догадался попробовать ещё и с яндекс-почты, там пришло мгновенно. Возможно что-то где-то отвалилось или если есть ограничение на провайдеров, об этом стоило бы написать в форме регистрации, сейчас этого нет. Также при ошибке регистрации предлагается «написать администратору», спешу уведомить, что без регистрации на форуме написать администратору негде и некуда, если у пользователя нет аккаунта на форуме. ICQ, наверное, не имеет смысл считать актуальным методом связи, хотя он указан у пары модераторов в профиле.

 !  CaptainFlint:
Оживил ссылку.
По поводу связи с администратором: замечание справедливое, подредактировал сообщение, добавив туда email-ссылку.
Что касается gmail, то со стороны форума никаких ограничений нет. Если их сервер отказывается принимать почту, мы ничего не можем с этим поделать, равно как и с любым другим почтовым сервисом.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group