[identity profile] higr.livejournal.com posting in [community profile] useful_faq
Есть 2 миллиона фотографий в одной папке. Хочу их разбить на 2000 папок, по 1000 фоток в папке.

Существует ли программа для windows7, способная на такое? Подскажите программу?

Можно вручную через total commander переносить, но очень долго. Хотелось бы автоматизировать.

upd Папка с картинками, отсортированными по имени файла. Никаких сходных признаков, по которым картинки можно отобрать - нет. Имена файлов вообще любые, такой порядок: 1, 5, 34, 1256, d24, gyr, r27. exif у половины фоток нет (потому что из инета). Расширение у всех jpg или jpeg.

Date: 2016-01-10 05:29 pm (UTC)
From: [identity profile] sviatoy-duhh.livejournal.com
вы уже определились, по какому принципу будете распределять файлы по папкам?

Date: 2016-01-10 05:38 pm (UTC)
From: [identity profile] sviatoy-duhh.livejournal.com
в тотале есть мощные инструменты сортировки.
нужно только задать параметры.
т.е. объяснить программе, по какому принципу ей нужно распределять файлы.

Date: 2016-01-10 05:42 pm (UTC)
From: [identity profile] sviatoy-duhh.livejournal.com
Самое простое - альт-Ф7 - поиск по маске файла, собранные результаты в созданную папку.
И так 2000 раз.
Можно автоматизировать, но маску файла скорей всего каждый раз нужно будет вбивать руками.

Date: 2016-01-10 05:53 pm (UTC)
From: [identity profile] sviatoy-duhh.livejournal.com
мхххы, а не нужно было валить в одну кучу.
или это результат "рыбалки"?
в именах файлов есть какая-нить закономерность?
например нарастающая последовательность, желательно по всему массиву?

Date: 2016-01-10 06:02 pm (UTC)
From: [identity profile] sviatoy-duhh.livejournal.com
тут проблема не в программном обеспечении, а в постановке задачи.
Еще раз, если вы предполагаете сортировать
"по имени", то фотки с одного аппарата обычно идут с нарастающим числом в имени файла.
Т.е. правило "имя с диапазоном ххххххххх-ууууууууу" складывать в папку ММММ" можно формализовать.
Не совсем правда понимаю, как потом можно пользоваться этим массивом.

Date: 2016-01-10 10:45 pm (UTC)
From: [identity profile] night-horseman.livejournal.com
Тотал может массово переименовать с заданным шагом.

Date: 2016-01-10 10:51 pm (UTC)
From: [identity profile] sviatoy-duhh.livejournal.com
канеш может.
только если сейчас есть вероятность структурирования и поиска файлов, то после переименования это возможность будет утеряна.

Date: 2016-01-10 10:54 pm (UTC)
From: [identity profile] night-horseman.livejournal.com
Да-да. Мне просто показалось, что проблема в неструктурированных именах файлов.
Я в Тотале поиском не пользовался. А вот переименовывать длинные цепочки приходилось.

Date: 2016-01-10 10:58 pm (UTC)
From: [identity profile] sviatoy-duhh.livejournal.com
Честно говоря я так и не понял характера задачи.
Что за фотки в таком количестве, и по каким признакам их нужно сортировать по папкам.

Date: 2016-01-10 11:06 pm (UTC)
From: [identity profile] night-horseman.livejournal.com
Да, согласен.
Я б, если честно, писал бы bat-ник или как там сейчас это делается скриптами. Потратишь час-два на изучение вопроса, зато получишь в руки максимально гибкий инструмент, который ещё и в будущем может пригодиться.

Date: 2016-01-11 08:33 am (UTC)
From: [identity profile] night-horseman.livejournal.com
Про скрипты я не в курсе точно, не разбирался. Примеры выглядят достаточно просто.
Мне кажется, что разобраться можно. Тем более, что наверняка существуют сайты с готовыми или очень похожими решениями.
ИМХО, самое сложное для обычного юзера с непривычки будет составить алгоритм.
Возможно, я субъективен, поскольку был программистом. Но это было недолго и 20 лет назад ;)

Date: 2016-01-11 09:14 am (UTC)
From: [identity profile] noendoutcry.livejournal.com
Того характера что вам надо - можно. Другой вопрос что вы ТЗ нормально поставить не можете, следовательно или сами плохо понимаете что вам надо, либо секретничаете, тогда не понятно зачем с секретами спрашивать в сообществе.

Date: 2016-01-10 05:30 pm (UTC)
From: [identity profile] sviatoy-duhh.livejournal.com
и да, 2млн файлов в одной папке - это в какой файловой системе?

Date: 2016-01-10 05:35 pm (UTC)
From: [identity profile] sviatoy-duhh.livejournal.com
неправильно спросил.
ваша операционная система справляется с например, просмотром этой папки?

Date: 2016-01-10 05:30 pm (UTC)
From: [identity profile] webeaver.livejournal.com
можно написать достаточно простой скрипт на любом языке для шелл, какой больше знаком написателю

Date: 2016-01-10 05:31 pm (UTC)
From: [identity profile] to-se.livejournal.com
cmd скрипты

Date: 2016-01-10 05:50 pm (UTC)
From: [identity profile] to-se.livejournal.com
Может и есть, я человек старой школы :) скриптами обхожусь
(deleted comment)

Date: 2016-01-11 12:55 pm (UTC)
From: [identity profile] webeaver.livejournal.com
если делать по снимку в секунду это надо 23 суток без остановки щелкать
тут скорее каким нить телепортом с сайтов понадергано

Date: 2016-01-10 06:40 pm (UTC)
From: [identity profile] ssokol01.livejournal.com
загрузи все в пикассу)

Date: 2016-01-10 07:01 pm (UTC)
From: [identity profile] denisioru.livejournal.com
1. сохранить под именем например copy-files.ps1 в каталоге в котором тысячи файлов:

$baseDir="p:\y"
$files=Get-ChildItem -Path "." -Filter *.jpg -File
$count=30;

for($i=0; $i -lt $files.Count; $i+=$count)
{
New-Item "$baseDir\$i" -ItemType Directory -ErrorAction SilentlyContinue
for($k=0; $k -lt $count; $k++)
{
$fileName=$files[$i+$k].Name;
Move-Item -Path "$fileName" -Destination "$baseDir\$i"
}
}

2. заменить P:\y на путь КУДА будут копироваться файлы и создаваться подкаталоги ($count - количество в одном каталоге)
3. с правами админа выполнить команду:

powershell -Command Set-ExecutionPolicy RemoteSigned

4. выполнить файл powershell -File copy-files.ps1

в $baseDir будут созданы подкаталоги и в них распиханы файлы в порядке сортировки на диске (в NTFS это по алфавиту)

Date: 2016-01-11 10:21 am (UTC)
From: [identity profile] irq-a.livejournal.com
Может, -Name? Я с PS не работал, но в бегло просмотренной документации по этой функции нет параметра -File. А -Name как раз возвращает список файлов в виде имён в текущей папке (аналог dir *.jpg /b).

https://technet.microsoft.com/ru-ru/library/hh849800.aspx

Date: 2016-01-11 10:42 am (UTC)
From: [identity profile] irq-a.livejournal.com
Ну если ошибка исчезла, то значит что-то поменялось. А уж что дальше, я не подскажу :)

Date: 2016-01-11 10:39 am (UTC)
From: [identity profile] denisioru.livejournal.com
я же написал как запустить:

powershell -File copy-files.ps1

Date: 2016-01-10 07:19 pm (UTC)
From: [identity profile] mef-is-toffel.livejournal.com
Если это фотки с сохраненным EXIF, то есть пара программ -- AmoK Exif Sorter и Exif ReName -- которые могут аккуратно раскидать файлики по папкам в соответствии с датой. Если EXIF не сохранился, то переместят в соответствии с датой создания файла.