[identity profile] kumarta.livejournal.com posting in [community profile] useful_faq
Взываю к адептам софта и лайфхаков! Назрела бытовая задача, прошу подсказок.

Даны:
— 7000 папок с бессистемными названиями
— 7000 фотографий с бессистемными названиями
— файл xls с перечнем соответствия 1 фотографии 1 папке

Нужно автоматически разложить фотки по папкам.
Как и с помощью каких прог (под Windows 7, 8) это можно сделать?

Есть идея через групповое переименование в Тотале привести названия папок к названиям фото, слить в одном месте, отсортировать по имени, по одной штуке в папки перебросать, через Тотал вернуть исходные названия папкам. Но 7000 перебросов... я подохну. Нужны ещё идеи. Заранее спасибо не прошедшим мимо.

Date: 2015-03-11 08:52 pm (UTC)
From: [identity profile] capt-threepwood.livejournal.com
файл в экселе? отлично, экспортируем в csv, разделитель - запятая, в первой строчке пишем заголовок filename, folder (или сразу в экселе).


т.е. должно получиться что-то вроде
filename,folder
file1.jpg,foldera
file2.jpg,folderb
file3.jpg,folderc

только с другими названиями.
назовём, например, list.csv.

для определенности: файлы и папки находятся в одной папке, csv копируем туда же.

запускаем powershell (пуск-выполнить и пишем там powershell)

в появившемся окне пишем
cd путь-до-папки-с-нашими-файлами-и-папками
$list=import-csv list.csv

проверяем, что всё импортировалось правильно: пишем
$list
видим длинный список имён файлов и папок в две колонки.

на всякий случай проверяем, что совпадает количество

$list | measure

и смотрим, что count такой, как там надо.

пишем
ForEach ($l in $list) { copy $l.filename $l.folder}

вуаля.

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

Date: 2015-03-12 07:26 am (UTC)
From: [identity profile] uncle-sem.livejournal.com
так проще дописать в первой колонке экселя "copy /b", во второй должно быть имя файла, в третьей имя папки. дальше экспортируем в текст, разделитель пробел, сохраняем с расширением файла .bat, ну и запускаем. если есть длинные имена с пробелами то придется повозиться с кавычками еще.

короче, изучить использование команды copy. или move, если файлы нужно переместить, а не скопировать.
Edited Date: 2015-03-12 07:28 am (UTC)