Я хотел бы знать, как много кучу папок с одинаковыми именами в разных папках. например (01/15) Мама (01/15) Папа (02/15) Папа (01/15) Брат (03/15) Сын Так что я хочу сделать, это папка для родителей (01/15) - подпапки (01/15) Мама, (01/15) папа и так далее и тому подобное. Другими словами, я хочу сгруппировать по тем, что в скобках. Поэтому я хочу создать папку с датами, чтобы переместить папку с изображениями в соответствующую группу. Их много папок, поэтому я не могу сделать это вручную.

2 ответа2

0

Похоже, у вас может быть несколько проблем здесь. Есть ли у ваших фотографий метаданные?

Как вы изначально группируете фотографии в маму, папу и т.д. - забывая дату на данный момент.

Они уже сгруппированы по имени пользователя? Или все файлы в одном каталоге с датой, когда файл был создан в имени файла?

Вы можете выполнять поиск в Windows (я полагаю, его окна?) и упорядочить фотографии по дате и другие метаданные, такие как теги и т. д. - все эти фильтры находятся в функции поиска Windows - в зависимости от того, как создаются фотографии, вы можете просто установить фильтр в поиске и переместить их все за один раз. ,

Я делаю это почти каждый день с фотографиями, вся моя семья и я беру тонну каждый день, и всегда мне приходится разбирать и поддерживать их всех!

0

В каталоге верхнего уровня создайте файл 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.

Как видите, для формирования нового каталога и перемещения в него содержимого исходного каталога требуется строка между (и).

Примечание: есть небольшая проверка ошибок, и она делает несколько предположений об имени каталога.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .