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

如何用BAT脚本批量移动并重命名电影预告片?求修复现有脚本

批量处理电影预告片与清理冗余文件夹的BAT脚本

问题说明

  • 待处理电影均位于外部硬盘的Need to Fix文件夹下,每个电影对应独立子文件夹(格式如Batman Begins (2005))
  • 需要完成的操作:
    • 移动每个电影文件夹内Featurettes\Trailer.mp4到主文件夹,并重命名为[电影文件夹名]-trailer.mp4
    • 删除空的Featurettes文件夹
    • 删除冗余的extrathumbs、extrafanart文件夹

原脚本失效原因

  1. 重复赋值MoveToDir和MoveFromDir,变量最终仅保留最后一次赋值结果,导致仅尝试处理最后一个电影文件夹
  2. 未实现遍历所有电影文件夹的逻辑,也没有处理预告片的重命名需求

修复后的BAT脚本

@ECHO OFF
SETLOCAL EnableDelayedExpansion

:: 设置根目录(脚本放在Need to Fix文件夹内时,可直接用%~dp0,否则替换为实际路径)
SET "RootDir=%~dp0"

:: 遍历根目录下所有电影文件夹
FOR /D %%F IN ("%RootDir%*") DO (
    :: 定义当前电影文件夹名和路径
    SET "MovieFolder=%%~nxF"
    SET "MoviePath=%%~fF"

    :: 处理Featurettes中的Trailer.mp4
    IF EXIST "!MoviePath!\Featurettes\Trailer.mp4" (
        :: 移动并重命名预告片
        MOVE /Y "!MoviePath!\Featurettes\Trailer.mp4" "!MoviePath!\!MovieFolder!-trailer.mp4"
        :: 删除空的Featurettes文件夹
        RD "!MoviePath!\Featurettes"
    )

    :: 删除冗余文件夹
    IF EXIST "!MoviePath!\extrathumbs" RD /S /Q "!MoviePath!\extrathumbs"
    IF EXIST "!MoviePath!\extrafanart" RD /S /Q "!MoviePath!\extrafanart"
)

ECHO 批量处理完成!
PAUSE
EXIT /B

脚本说明

  • SETLOCAL EnableDelayedExpansion:启用延迟变量扩展,确保循环中变量能正确更新
  • %~dp0:获取脚本所在的当前目录路径,若脚本未放在Need to Fix内,需手动替换为实际根路径(如G:\Need To Fix\)
  • FOR /D %%F IN ("%RootDir%*"):遍历根目录下所有子文件夹(即每个电影的文件夹)
  • MOVE /Y:强制覆盖同名文件(若存在)
  • RD /S /Q:静默删除文件夹及其所有内容(无需确认)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 11:57:45