Автоматизировать разброс файлов
Mar. 11th, 2015 10:32 pm![[identity profile]](https://www.dreamwidth.org/img/silk/identity/openid.png)
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)
Взываю к адептам софта и лайфхаков! Назрела бытовая задача, прошу подсказок.
Даны:
— 7000 папок с бессистемными названиями
— 7000 фотографий с бессистемными названиями
— файл xls с перечнем соответствия 1 фотографии 1 папке
Нужно автоматически разложить фотки по папкам.
Как и с помощью каких прог (под Windows 7, 8) это можно сделать?
Есть идея через групповое переименование в Тотале привести названия папок к названиям фото, слить в одном месте, отсортировать по имени, по одной штуке в папки перебросать, через Тотал вернуть исходные названия папкам. Но 7000 перебросов... я подохну. Нужны ещё идеи. Заранее спасибо не прошедшим мимо.
Даны:
— 7000 папок с бессистемными названиями
— 7000 фотографий с бессистемными названиями
— файл xls с перечнем соответствия 1 фотографии 1 папке
Нужно автоматически разложить фотки по папкам.
Как и с помощью каких прог (под Windows 7, 8) это можно сделать?
Есть идея через групповое переименование в Тотале привести названия папок к названиям фото, слить в одном месте, отсортировать по имени, по одной штуке в папки перебросать, через Тотал вернуть исходные названия папкам. Но 7000 перебросов... я подохну. Нужны ещё идеи. Заранее спасибо не прошедшим мимо.
no subject
Date: 2015-03-11 08:52 pm (UTC)т.е. должно получиться что-то вроде
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 будет выведено страшное красное сообщние строк на пять.
no subject
Date: 2015-03-12 07:26 am (UTC)короче, изучить использование команды copy. или move, если файлы нужно переместить, а не скопировать.