在 Windows 中删除多个文件的后缀-不重复

在 Windows 中删除多个文件的后缀-不重复

这可能看起来像是一个重复的问题,但事实并非如此。我的问题有点不同。实际上,我有一个包含大量 mp4 文件的文件夹,我想给每个文件名加上 GOOD 后缀。看到上一个问题的答案后,我做了一些事情,最终实际上添加了 .mp4good 后缀。因此,原本是 a.mp4 的文件变成了 a.mp4good.mp4,而不是 aGOOD.mp4(我真正想要的)。幸运的是,所有这些文件都在运行,但名称不是我想要的。我请求帮助如何从这一点获得我想要的东西。我在包含这些文件的文件夹中使用了 DOS 中的重命名命令。

答案1

正如您所发现的,您在基本名称后附加后缀的语法不正确。有关原因的解释可参见 Windows RENAME 命令如何解释通配符?。该链接还具有附加到基本名称的正确语法:

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

必须有足够的?长度来匹配最长的基本名称。

请注意,如果您有一些格式为 的起始名称a.b.mp4,则上述结果将产生aGOOD.b.mp4。如果您想要a.bGOOD.mp4,那么您需要的不仅仅是一个简单的 REN 命令。您可以使用

for %F in (*.mp4) do @ren "%F" "%~nFGOOD.mp4"

如果你将命令放在批处理脚本中,那么你必须将百分比加倍

@echo off
for %%F in (*.mp4) do ren "%%F" "%%~nFGOOD.mp4"

目前,您有形式为 的名称a.mp4GOOD.mp4,并且您想要aGOOD.mp4

解决方案是:

ren *.mp4GOOD.mp4 ??????????????????GOOD.mp4

如果某些名称包含两个以上的点,那么您将需要的不仅仅是一个简单的 REN 命令。

for %A in (*.mp4GOOD.mp4) do @for %B in ("%~nA") do @ren "%B" "%~nBGOOD.mp4

如果将命令放在批处理脚本中,请记得将百分比加倍。

相关内容