1

У меня есть множество файлов субтитров (.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
    )
)

0