通过批量重命名从文件名中间删除文本

我试图去组织一系列像这样命名的video文件:

Something or Other.s1e1.mp4 Another title.s1e2.mp4 ... Yet More Titles.s1e87.mp4 

等等。 我想做的是去掉文件名中的“s1eNUM”部分,恢复正常,所以我会得到“Something or Other.mp4”和“More More Titles.mp4”等等。

这可以通过使用Windows命令行,使用ren和batch file来完成吗? 还是我需要特殊的软件? 谢谢!!

Solutions Collecting From Web of "通过批量重命名从文件名中间删除文本"

使用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个节点,最后一个是文件扩展名。

如果您知道.mp4文件没有超过3个节点,则只需要一个简单的REN命令。

请参阅Windows RENAME命令如何解释通配符以解释为什么会起作用。 请注意,你必须有足够的? 字符匹配或超过找到的最大节点1的长度。

 ren *.*.mp4 ?????????????????????????????????????????.mp4 

如果您可能拥有多于3个节点的文件,并且想要删除倒数第二个(倒数第二个)节点,则可以使用2个嵌套循环:

 for /f "eol=: delims=" %%A in ('dir /b /ad *.*.mp4') do for %%B in ("%%~nA") do ren "%%B" "%%~nA.mp4"