Windows 重命名多个文件

Windows 重命名多个文件

我有一个包含图像的文件夹:

1.png
2.png
3.png
...
11000.png.

我想重命名此文件并添加 p-,如下所示:

p-1.png
p-2.png
...
p-11000.png

我该如何实现这一点?我试过了

ren *.png ???-p.* 

但这却产生了相反的结果。

答案1

为什么不使用一些更直接、更简单的for循环命令?

  • 你不需要if在循环中使用任何内容:
❌ ren *.png ???-p.*  
✅ ren *.png p-*.png  
for %i in ("c:\your\folder\*.png")do ren "%~i" "p-%~nxi"

答案2

将字符串(或字符)附加到文件名的开头

您可以使用为了循环迭代目录中的每个文件并使用变量替换获取每个文件的特定名称部分。您可以使用它们并添加“ p-”字符串,并将其作为前缀附加到ren每个文件的命令中,以获得所需的预期输出结果。

本质上就是这样……

  • 迭代*.*特定目录中的所有文件(非递归)
  • 用途变量替换获取每个文件的文件名部分
  • 将字符串附加p-到每个文件的开头,并将其作为第二个参数传递给每个文件新名称的命令

命令行

for %a in ("C:\path\*.*") do if [%~xa]==[.png] ren "%~a" "p-%~Na%~Xa"

批处理脚本

SET "Src=C:\path"
SET "Str=p-"
for %%a in ("%Src%\*.*") do if [%%~xa]==[.png] ren "%%~a" "%Str%%%~Na%%~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
    
  • 变量替换
  • 如果

答案3

Total Commander 有一个Ctrl+M好用的文件名更改工具。

它可以替换字符串、使用 RegEx、计数器、字符范围、大写/小写和其他一些功能。

相关内容