You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从根目录运行bat脚本递归将Subtitles.srt移动到对应Subtitles文件夹

问题根因

你原有脚本的核心问题是移动操作的目标路径使用了相对路径,该路径始终相对于脚本运行的工作目录,而非每个Subtitles.srt文件实际所在的父目录,因此只有当前工作目录下的字幕文件能匹配到同层级的Subtitles文件夹,递归到其他层级的文件都会匹配失败。

解决方法

修改批处理逻辑,对每个检索到的字幕文件,先提取其所在的父目录,再拼接同层级的Subtitles文件夹作为目标路径,即可保证每个文件都移动到对应同级目录下的目标文件夹,直接从根目录运行即可完成全量操作。

最终可运行脚本

@echo off
setlocal enabledelayedexpansion
:: 替换为你的电影资源根目录完整路径
set "ROOT_DIR=D:\你的电影总库根目录"
:: 递归检索所有Subtitles.srt文件,/a-d 排除匹配到的同名文件夹
for /f "delims=" %%i in ('dir /b /s /a-d "%ROOT_DIR%\Subtitles.srt"') do (
    :: 提取当前srt文件的所在目录绝对路径
    set "SRT_PARENT_DIR=%%~dpi"
    :: 拼接得到同层级Subtitles文件夹的完整路径
    set "TARGET_DIR=!SRT_PARENT_DIR!Subtitles"
    :: 可选:目标文件夹不存在时自动创建,不需要可删除此行
    if not exist "!TARGET_DIR!" md "!TARGET_DIR!"
    :: 执行移动操作
    move "%%~i" "!TARGET_DIR!\"
)
echo 所有字幕文件移动完成
pause
endlocal

补充说明

  • 若希望脚本默认处理当前运行所在的目录,将ROOT_DIR的赋值替换为set "ROOT_DIR=%~dp0"即可。
  • 若不需要自动创建不存在的Subtitles文件夹,删除对应的if not exist判断行即可。

内容的提问来源于stack exchange,提问作者user1868774

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 16:45:03