У меня есть множество файлов субтитров (.srt), которые у меня есть в каталоге, скажем C:\foo. У меня есть коллекция видеофайлов, организованных во множество папок (т.е. папок с именами A, B, C, D, E, ... и т.д., Каждая из которых содержит от одного до нескольких видеофайлов). Я хотел бы переместить все файлы .srt в папку, в которой находится соответствующий им видеофайл (на основе имени файла)?
Есть ли способ, как я могу выполнить поиск по подстроке на основе имени файла .srt, где он будет искать в папке корневого каталога (корневая папка, содержащая папки с уникальными именами A, B, C, D, E и т.д.), А также поиск также ВСЕ слои подкаталогов в этом? т.е. все вложенные подкаталоги, чтобы найти «совпадающее» имя файла видео?
И оттуда, если есть совпадение, перемещает файл .srt в папку, где был найден видеофайл с «соответствием».
Я полагаю, это было бы сродни тому, как медиаплееры могут выполнять нечеткий поиск, и поэтому, даже если какая-либо подстрока имени субтитра соответствует видео, он будет загружать субтитры)?
Теперь, отметив это, я, очевидно, не нуждаюсь в реализации нечеткого поиска, потому что, к счастью, мои имена файлов выглядят так:
.srt имя файла: XXX
_ abczxy
Имя файла видео: XXX
.mp4
где XXX
= строка (в которой эта строка абсолютно одинакова как для файла .srt, так и для видеофайла)
а также
где abcxyz
= некоторая уникальная случайная строка
Спасибо
Пока что я написал:
@ECHO OFF
SET "SEARCH_IN_DIR=%USERPROFILE%\Desktop\foo\"
SET "DEST_DIR=%USERPROFILE%\Desktop\RootFolder"
REM: Enter recursive search, display lists of files to be copied, copy from the source to the dest:
FOR /R "%SEARCH_IN_DIR%" %%f IN (%%a) (
IF EXIST %%f (
DO (
xcopy /I "%%~f" "%DEST_DIR%" 2> NUL
)
ELSE (
echo
)
)