使用批量重命名从文件名中间删除文本
Removing text from the middle of a file name with batch renaming
我正在尝试整理一系列这样命名的视频文件:
Something or Other.s1e1.mp4
Another title.s1e2.mp4
...
Yet More Titles.s1e87.mp4
等等。我想要做的是删除文件名的 "s1eNUM" 部分并将其恢复正常,所以我会得到 "Something or Other.mp4" 和 "Yet More Titles.mp4" 等等。
可以使用 Windows 命令行、ren 和批处理文件来完成吗?或者我需要特殊的软件吗?谢谢!!
使用 for 命令。
@echo off
set YourFileName=title.s1e2.mp4
for /f "tokens=1 delims=." %%x in ("%YourFileName%") do (set filename1=%%x)
for /f "tokens=3 delims=." %%x in ("%YourFileName%") do (set filename2=%%x)
echo %filename1%.%filename2%
rename C:\PATH\%YourFileName% %filename1%.%filename2%
pause>nul
这应该去掉中间的"s1eNum",然后在最后合并文件名和扩展名。
我会发明一个术语,节点是点之前、之后或之间的任何文本。所以 "Other.s1e1.mp4" 会有 3 个节点,最后一个是文件扩展名。
如果您知道 none 个 .mp4 文件有超过 3 个节点,那么您只需要一个简单的 REN 命令。
请参阅 How does the Windows RENAME command interpret wildcards 以了解其工作原理的解释。请注意,您必须有足够的 ?
个字符才能匹配或超过找到的最大节点 1 的长度。
ren *.*.mp4 ?????????????????????????????????????????.mp4
如果您的文件可能有超过 3 个节点,并且您想要删除倒数第二个(倒数第二个)节点,那么可以使用 2 个嵌套循环:
for /f "eol=: delims=" %%A in ('dir /b /a-d *.*.mp4') do for %%B in ("%%~nA") do ren "%%B" "%%~nA.mp4"
我正在尝试整理一系列这样命名的视频文件:
Something or Other.s1e1.mp4
Another title.s1e2.mp4
...
Yet More Titles.s1e87.mp4
等等。我想要做的是删除文件名的 "s1eNUM" 部分并将其恢复正常,所以我会得到 "Something or Other.mp4" 和 "Yet More Titles.mp4" 等等。
可以使用 Windows 命令行、ren 和批处理文件来完成吗?或者我需要特殊的软件吗?谢谢!!
使用 for 命令。
@echo off
set YourFileName=title.s1e2.mp4
for /f "tokens=1 delims=." %%x in ("%YourFileName%") do (set filename1=%%x)
for /f "tokens=3 delims=." %%x in ("%YourFileName%") do (set filename2=%%x)
echo %filename1%.%filename2%
rename C:\PATH\%YourFileName% %filename1%.%filename2%
pause>nul
这应该去掉中间的"s1eNum",然后在最后合并文件名和扩展名。
我会发明一个术语,节点是点之前、之后或之间的任何文本。所以 "Other.s1e1.mp4" 会有 3 个节点,最后一个是文件扩展名。
如果您知道 none 个 .mp4 文件有超过 3 个节点,那么您只需要一个简单的 REN 命令。
请参阅 How does the Windows RENAME command interpret wildcards 以了解其工作原理的解释。请注意,您必须有足够的 ?
个字符才能匹配或超过找到的最大节点 1 的长度。
ren *.*.mp4 ?????????????????????????????????????????.mp4
如果您的文件可能有超过 3 个节点,并且您想要删除倒数第二个(倒数第二个)节点,那么可以使用 2 个嵌套循环:
for /f "eol=: delims=" %%A in ('dir /b /a-d *.*.mp4') do for %%B in ("%%~nA") do ren "%%B" "%%~nA.mp4"