Сортировка по смешанным файлам с соответствующим именем в имени файла

Я обработал более 10 000 mp4 в gif, у них есть "категория" в заголовках из пакета, который я использовал ранее, потому что существует около 1000 категорий (то есть 1000 папок), и мое программное обеспечение может обрабатывать только одну папку за раз, поэтому я пакетно переименовал их в родительскую папку (чтобы я мог отсортировать их позже) и поместил в "материнскую" папку. Все они имеют случайно сгенерированные буквы + заголовки + категории в своих именах. Ни категории, ни фактическое имя файла не имеют одинакового количества букв (в случае необходимости), имена папок и файлов всегда начинаются с "reddit_sub_CATEGORY". Категории всегда имеют строчные буквы, без цифр и специальных символов.

пример файлов (их более 10 000)

d:\motherfolder\reddit_sub_funnycatswithdog_983j331_cutecattries-to_eatdog.gif
d:\motherfolder\reddit_sub_funnydogs_fdsljdsd9s_kiotdawg_123.gif
d:\motherfolder\reddit_sub_randommemes_023093x23_uploadedtitle.gif
d:\motherfolder\reddit_sub_imoutofrandomnames_92382j38du8yu_socute.gif
d:\motherfolder\reddit_sub_ and over 9001 more

Папки (более 1000 из них)

d:\sortedfolders\reddit_sub_funnycatswithdog\
d:\sortedfolders\reddit_sub_funnydogs\
d:\sortedfolders\reddit_sub_randommemes\
d:\sortedfolders\reddit_sub_imoutofrandomnames\
d:\sortedfolders\reddit_sub_ and over 999 more

Я перепробовал все сценарии, которые смог найти, потратил много часов, пытаясь заставить их работать безрезультатно.

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

Обновление - не могу найти его!! Это было что-то вроде

ECho off
rem Enter into Root Folder
cd /d %~dp0
cd d:\rip\mp4\mothermp4
rem Process each SUB folder
for /D %%u in (*) do (
   rem Enter into the SUB folder
   cd "%%u"
   rem Process each Project
   for %%p in (*) do (
      rem Move all files one level up
      move *.* ..
      rem Go back one level up to root folder

   )
   cd ..
)

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

Я ожидаю, что папки будут иметь ВСЕ соответствующие файлы, отсортированные в них. (без копии, если это возможно, его около 150 ГБ!)

например;

d:\sortedfolders\reddit_sub_funnycatswithdog\reddit_sub_funnycatswithdog_983j331_cutecattries-to_eatdog.gif
d:\sortedfolders\reddit_sub_funnydogs_fdsljdsd9s\reddit_sub_funnydogs_fdsljdsd9s_kiotdawg_123.gif
d:\sortedfolders\reddit_sub_randommemes\reddit_sub_randommemes_023093x23_uploadedtitle.gif
d:\sortedfolders\reddit_sub_imoutofrandomnames\reddit_sub_imoutofrandomnames_92382j38du8yu_socute.gif 

обновленный запрос --- удаление "reddit_sub_category_" одновременно в имени файла

d:\sortedfolders\reddit_sub_funnycatswithdog\83j331_cutecattries-to_eatdog.gif
d:\sortedfolders\reddit_sub_funnydogs_fdsljdsd9s\fdsljdsd9s_kiotdawg_123.gif
d:\sortedfolders\reddit_sub_randommemes\023093x23_uploadedtitle.gif
d:\sortedfolders\reddit_sub_imoutofrandomnames\92382j38du8yu_socute.gif 

1 ответ

Решение

Дерево работает до

> tree D:\ /F
D:\
├───motherfolder
│       reddit_sub_funnycatswithdog_983j331_cutecattries-to_eatdog.gif
│       reddit_sub_funnydogs_fdsljdsd9s_kiotdawg_123.gif
│       reddit_sub_imoutofrandomnames_92382j38du8yu_socute.gif
│       reddit_sub_randommemes_023093x23_uploadedtitle.gif
│
└───sortedfolders
    ├───reddit_sub_funnycatswithdog
    ├───reddit_sub_funnydogs
    ├───reddit_sub_imoutofrandomnames
    └───reddit_sub_randommemes

Эта партия

:: Q:\Test\2019\01\25\SO_54372309.cmd
@Echo off
Set "FileBase=D:\motherfolder"
Set "FolderBase=D:\sortedfolders"
for /d %%A in (%FolderBase%\*) Do Move "%FileBase%\%%~nA*" "%%A\"

и после:

> tree /F D:\
D:\
├───motherfolder
└───sortedfolders
    ├───reddit_sub_funnycatswithdog
    │       reddit_sub_funnycatswithdog_983j331_cutecattries-to_eatdog.gif
    │
    ├───reddit_sub_funnydogs
    │       reddit_sub_funnydogs_fdsljdsd9s_kiotdawg_123.gif
    │
    ├───reddit_sub_imoutofrandomnames
    │       reddit_sub_imoutofrandomnames_92382j38du8yu_socute.gif
    │
    └───reddit_sub_randommemes
            reddit_sub_randommemes_023093x23_uploadedtitle.gif
Другие вопросы по тегам