Я хотел бы знать, как много кучу папок с одинаковыми именами в разных папках. например (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.
Как видите, для формирования нового каталога и перемещения в него содержимого исходного каталога требуется строка между (и).
Примечание: есть небольшая проверка ошибок, и она делает несколько предположений об имени каталога.
