Windows批处理脚本优化:DVD/BD备份文件批量重命名需求
整理DVD/BD备份文件的右键批处理脚本优化
问题背景
我是业余编程新手,正在整理DVD/BD备份文件的目录结构与文件名,适配流媒体播放器。为减少重复操作,希望制作一个可在Windows 10右键菜单启动的脚本,直接在目标目录运行。
原目录结构
C:\User\Me\Videos\Star Trek -- Star Trek (DVD) Disc 1 -- ABCST-disc-1.iso -- randomname1.jpg -- folder.txt -- Star Trek (DVD) Disc 2 -- ABCST-disc-2.iso -- randomname2.png -- folder.txt -- Star Trek (BD) Disc 1 -- ABCST-bd-disc-1 (folder structure) -- BDMV (and subfolders) -- CERTIFICATE (and subfolders) -- randomname3.png -- folder.txt
目标目录结构
C:\User\Me\Videos\Star Trek -- Star Trek (DVD) Disc 1 -- Star Trek (DVD) Disc 1.iso -- Star Trek (DVD) Disc 1.jpg -- folder.txt -- Star Trek (DVD) Disc 2 -- Star Trek (DVD) Disc 2.iso -- Star Trek (DVD) Disc 2.png -- folder.txt -- Star Trek (BD) Disc 1 -- Star Trek (BD) Disc 1 (folder structure) -- BDMV (and subfolders) -- CERTIFICATE (and subfolders) -- Star Trek (BD) Disc 1.png -- folder.txt
现有代码问题
我编写的批处理存在路径硬编码问题,必须在每个子目录放置脚本,使用不便:
@echo off except (folder.txt) for /d %%a in ("C:\User\Me\Videos\Star Trek\Star Trek (DVD) Disc 1") do ren "%%~fa\*.png" "%%~na.*" for /d %%a in ("C:\User\Me\Videos\Star Trek\Star Trek (DVD) Disc 1") do ren "%%~fa\*.jpg" "%%~na.*" for /d %%a in ("C:\User\Me\Videos\Star Trek\Star Trek (DVD) Disc 1") do ren "%%~fa\*.iso" "%%~na.*" for /d %%a in ("C:\User\Me\Videos\Star Trek\Star Trek (DVD) Disc 1") do ren "%%~fa\*.mkv" "%%~na.*"
优化需求
- 修改脚本,自动识别启动目录,替换硬编码路径
- 合并.iso、.mkv、.png、.jpg等指定文件类型的处理代码,减少冗余
- 确保
folder.txt不受重命名操作影响 - (可选)将BD备份中包含BDMV文件夹的父文件夹重命名为其父目录名称
解决方案
优化后的批处理脚本
@echo off setlocal enabledelayedexpansion :: 遍历当前目录下的所有子目录 for /d %%d in (*) do ( set "dirName=%%~nd" echo 正在处理目录: !dirName! :: 批量重命名指定类型文件,排除folder.txt for %%t in (iso mkv png jpg) do ( for %%f in ("%%d\*.%%t") do ( if not "%%~nxf"=="folder.txt" ( ren "%%f" "!dirName!.%%t" ) ) ) :: (可选)处理BD备份文件夹:识别包含BDMV的子文件夹并重命名 for /d %%sub in ("%%d\*") do ( if exist "%%sub\BDMV" ( ren "%%sub" "!dirName!" echo 已重命名BD文件夹: "%%~nsub" → "!dirName!" ) ) ) echo 所有目录处理完成! pause
添加右键菜单步骤
- 按下
Win+R输入regedit打开注册表编辑器 - 导航到路径:
HKEY_CLASSES_ROOT\Directory\shell - 右键点击
shell,选择「新建→项」,命名为整理DVD/BD备份 - 右键点击新建的项,选择「新建→字符串值」,命名为
Icon,值可设为shell32.dll,12(默认文件夹图标)或自定义图标路径 - 右键点击
整理DVD/BD备份,选择「新建→项」,命名为command - 双击
command的默认值,填入批处理脚本的完整路径,格式为:"C:\你的脚本路径\RenameBDDVD.bat" "%1" - 关闭注册表编辑器后,右键点击目标文件夹即可看到该选项
内容的提问来源于stack exchange,提问作者user23418495
相关产品推荐
相关产品推荐

