我尝试使用批处理脚本通过从 mkvinfo 中提取标题值来自动批量重命名文件。
现在,我有一些标题如下的文件:
"Downloaded From: WWW.BEPRITY.COM - FACE.MASK.S23"
结果我的文件被重命名为:
"Downloaded From.mkv"
我怀疑名称中的冒号有问题。
这是我的批处理脚本
@echo off
setlocal enabledelayedexpansion
for %%F in (*.mkv) do (
set "title="
for /f "tokens=2 delims=:" %%A in ('mkvinfo "%%F" ^| find "Title"') do (
set "title=%%A"
set "title=!title:~1!"
)
if defined title (
ren "%%F" "!title!.mkv"
echo Renamed "%%F" to "!title!.mkv"
) else (
echo No title found for "%%F"
)
)
endlocal
您尚未向我们提供
mkvinfo
在所选行上报告的格式。
我怀疑那条线是
Title: Downloaded From: WWW.BEPRITY.COM - FACE.MASK.S23
这会产生这个问题,而
Title: FACE.MASK.S23
将被正确处理。
我建议
for %%A
应该是
for /f "tokens=2,* delims=:" %%A in ('mkvinfo "%%F" ^| find "Title"') do (
set "title=%%B"
if not defined title set "title=%%A"
set "title=!title:~1!"
)
应将
%%A
设置为 Downloaded From
,将 %%B
设置为 WWW.BEPRITY.COM - FACE.MASK.S23
,以实现 Downloaded From: WWW.BEPRITY.COM - FACE.MASK.S23
和
%%A
到 FACE.MASK.S23
和 %%B
到 无 FACE.MASK.S23