求可处理子目录文件的批处理程序,for /R命令使用遇阻
批处理递归处理子目录MKV文件的修复方案
你的代码没递归子目录的原因很简单——用了普通for循环,只会扫描当前目录的.mkv文件,换成for /R就能遍历所有子目录了。
修正后的完整代码
@echo off setlocal EnableDelayedExpansion :: 递归遍历所有子目录下的MKV文件 for /R %%A in ("*.mkv") do ( echo file found %%A :: 保留你原有的文件名处理逻辑 for /f "tokens=1,2 delims=[im" %%D in ("%%~nA") do set "shortname=%%D[%%E" echo short name !shortname! >>J:\list.txt ) endlocal
关键细节
for /R:默认从当前脚本所在目录开始递归,要是想指定起始根目录,改成for /R "D:\目标根目录" %%A in ("*.mkv") do ...就行- 文件名处理:你的
delims=[im是把[、i、m都当成分隔符,tokens=1,2提取前两段。如果你的文件名格式有变动,得调整这两个参数 - 权限提醒:确保脚本有写入
J:\list.txt的权限,不然会出现写入失败的情况
内容的提问来源于stack exchange,提问作者user704270
相关产品推荐
相关产品推荐

