【发布时间】:2021-04-07 21:17:19
【问题描述】:
多年来我一直使用这个脚本,我从这里找到从父文件夹名称重命名电影文件名:
@echo off
for /r /d %%x in (*) do (
pushd "%%x"
echo %%x
for /F %%i in ("%%x") do (
ren *.mkv "%%~ni.mkv" 2> NUL
ren *.avi "%%~ni.avi" 2> NUL
ren *.mp4 "%%~ni.mp4" 2> NUL
)
popd
)
所以我遇到的唯一问题是父文件夹如下所示: 电影文件夹-xyz
运行脚本,文件名将是: 电影文件夹.mp4
这里的问题是“-xyz”被省略了,我太简单了,无法弄清楚如何修复这个脚本,这样我就不必手动重命名所有文件。蒂亚!
【问题讨论】:
-
没有专门处理
-字符的代码,这对cmd来说没什么特别的,所以你的问题是不可重现的;for /F命令在 spaces 和 tabs 处拆分文件名,但不在-... -
呃。所以没有解决方法可以以某种方式导出整个文件夹然后将其打印到文件名中?不客气,谢谢
-
我同意@aschipfl,最可能的情况是您的目录被命名为
MovieFolder.xyz,并且因为您使用的是%%~ni而不是%%~nxi或%%~nxx,最后一个时期并且它后面的字符被视为它的扩展,并被省略。
标签: windows batch-file cmd rename