# cmd - 批量重命名文件

相信大家或多或少都遇到过类似的情况：从网上下载了好多图片(或者其他的文件)，这些图片的名字往往都是些乱七八糟的字母数字的组合，我们想要一次性修改几十张上百张的图片的名字应该怎么办呢？

这里有两种方法，最简单的就是直接使用Windows自带的批量重命名方法；但是这种方法有缺陷，只能以固定的命名规律来命名。另一种方法就是通过dos命令来批量修改文件名。
<!--more-->
## Windows自带的批量重命名

选定所有你想修改的文件，然后右键菜单选择`重命名`，接下来输入随便一个名字，比如 `photo`，然后回车确定。接下来你就会看到被选中的 n 张图片都被重命名为从 `photo (1)` 到 `photo (n)` 这样的名字。

如果你很介意名字中出现的` (n)`的格式，那么推荐你使用下边的方法来进行批量重命名文件。

## 通过dos命令来批量修改文件名

1. 首先新建一个txt文件，然后修改名字为`rename.bat`(随便起名字，只是后缀必须是`.bat`)
2. 用编辑器打开该bat文件并输入以下dos命令并保存该文件(如果没有编辑器比如`EditPlus`之类的，就先在txt文件里输入以下dos命令再重新改名为.bat后缀的名字)

```dos
@echo off
set a=0
setlocal EnableDelayedExpansion
for %%n in (*.png) do (
set /A a+=1
ren "%%n" "bilibili_!a!.png"
)
```

这里的命令表示将当前目录下的所有png后缀的图片都改名为`bilibili_{a}.png`，这里的`{a}`是从1开始到n的数字。

双击执行该bat文件(注意该bat文件需要放在和要重命名的图片同一个目录下)，就会发现文件名变成了下图的样子：

![rename1.jpg](/images/posts/computer/rename1.jpg)

下图中红框标出来的三个地方可以随自己喜欢任意修改：

![rename2.jpg](/images/posts/computer/rename2.jpg)