使用嵌套文件夹搜索中的文件名批量移动文件

使用嵌套文件夹搜索中的文件名批量移动文件

我有大量字幕 (.srt) 文件,它们位于一个目录中,例如 C:\foo。我有一组视频文件,组织到多个文件夹中(即名为 A、B、C、D、E 等的文件夹,其中每个我有一对多的视频文件)。我想将每一个 .srt 文件移动到包含与其匹配(基于文件名)的视频文件的文件夹中?

有什么方法可以基于 .srt 的文件名执行子字符串搜索,它将搜索根目录文件夹(包含文件夹唯一命名A、B、C、D、E 等)并搜索其中的所有子目录层?即所有嵌套的子目录,以查找“匹配”的视频文件名?

从此,如果有一个匹配移动将 .srt 文件复制到找到具有“匹配”的视频文件的文件夹。

我想这类似于媒体播放器如何执行模糊搜索,因此即使字幕名称的任何子字符串与视频匹配,它也会加载字幕)?

现在,注意到这一点,我显然不需要模糊搜索实现,因为幸运的是我的文件名是这样的:

.srt 文件名:XXX_ abczxy.srt

视频文件名: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
    )
)

相关内容