使用 ren 命令批量附加到文件名末尾的扩展名之前

使用 ren 命令批量附加到文件名末尾的扩展名之前

我想重命名文件夹中具有不同扩展名的所有文件,使其文件名以“ _1”结尾,同时保留现有的扩展名。

我尝试了ren * *_1*,它只是将 中已经存在的下划线的最后一个实例替换为_1。我也尝试了ren * *_1.*,但这会添加_1到文件名的末尾。

我在 Windows 10 中使用命令行(从文件夹搜索栏输入 cmd)。

答案1

您可以使用为了循环迭代目录中的每个文件并指定变量替换分别获取文件名称减去扩展名和文件扩展名加上前面的点。您可以使用它们并添加字符串_1以获取迭代的每个文件的预期输出。

本质上就是这样……

  • 迭代*.*特定目录中的所有文件(非递归)
  • 用途变量替换为了得到不带扩展名的文件名文件扩展名 分别/单独
  • 连接没有扩展名的文件名字符串_1原始“。”扩展名并将其作为第二个参数传递给每个文件命令。

命令行

for %a in ("C:\path\*.*") do ren "%~a" "%~Na_1%~Xa"

批处理脚本

SET "Src=C:\path"
SET "Str=_1"
for %%a in ("%Src%\*.*") do ren "%%~a" "%%~Na%Str%%%~Xa"

更多资源

为了

  • 变量替换(FOR /?)

    此外,FOR 变量引用的替换功能也得到了增强。现在您可以使用以下可选语法:

    %~I         - expands %I removing any surrounding quotes (")
    %~nI        - expands %I to a file name only
    %~xI        - expands %I to a file extension only
    
  • 变量替换

答案2

尝试使用:

SET "Str=_1"
for %%a in (".\*.*") do ren "%%~a" "%%~Na%Str%%%~Xa"

重命名与批处理文件位于同一目录中的所有文件。您还可以将 ren 更改为 copy,以复制并重命名文件。

相关内容