Я хотел бы знать, как много кучу папок с одинаковыми именами в разных папках. например (01/15) Мама (01/15) Папа (02/15) Папа (01/15) Брат (03/15) Сын Так что я хочу сделать, это папка для родителей (01/15) - подпапки (01/15) Мама, (01/15) папа и так далее и тому подобное. Другими словами, я хочу сгруппировать по тем, что в скобках. Поэтому я хочу создать папку с датами, чтобы переместить папку с изображениями в соответствующую группу. Их много папок, поэтому я не могу сделать это вручную.
2 ответа
Похоже, у вас может быть несколько проблем здесь. Есть ли у ваших фотографий метаданные?
Как вы изначально группируете фотографии в маму, папу и т.д. - забывая дату на данный момент.
Они уже сгруппированы по имени пользователя? Или все файлы в одном каталоге с датой, когда файл был создан в имени файла?
Вы можете выполнять поиск в Windows (я полагаю, его окна?) и упорядочить фотографии по дате и другие метаданные, такие как теги и т. д. - все эти фильтры находятся в функции поиска Windows - в зависимости от того, как создаются фотографии, вы можете просто установить фильтр в поиске и переместить их все за один раз. ,
Я делаю это почти каждый день с фотографиями, вся моя семья и я беру тонну каждый день, и всегда мне приходится разбирать и поддерживать их всех!
В каталоге верхнего уровня создайте файл sort.vbs и добавьте следующий текст:
set objFSO = CreateObject("Scripting.FileSystemObject")
set objFolder = objFSO.GetFolder(".")
set colSubfolders = objFolder.Subfolders
strStartChar = "("
strEndChar = ")"
for each objSubfolder in colSubfolders
strNameOfFolder = objSubfolder.Name
if instr(strNameOfFolder, strStartChar) > 0 then
intStartCharacter = instr(strNameOfFolder,strStartChar) +1
intEndCharacter = instr(strNameOfFolder,strEndChar)
intLength = intEndCharacter - intStartCharacter
strNewFolderName = mid(strNameOfFolder, intStartCharacter, intLength )
wscript.echo "Processing: " & strNameOfFolder & ", extracted text for new folder: " & strNewFolderName
if not objFSO.FolderExists(strNewFolderName) then
objFSO.CreateFolder strNewFolderName
end if
if objFSO.FolderExists(strNewFolderName) then
set ExistingFolder = objFSO.GetFolder(strNameOfFolder)
objFSO.MoveFolder ExistingFolder.name, strNewFolderName & "\"
end if
else
wscript.echo strNameOfFolder & " not for processing. No " & strStartChar & " character in directory."
end if
next
Затем откройте командную строку в том же каталоге и запустите:
cscript.exe sort.vbs.
Как видите, для формирования нового каталога и перемещения в него содержимого исходного каталога требуется строка между (и).
Примечание: есть небольшая проверка ошибок, и она делает несколько предположений об имени каталога.