批量重命名 CLI - batname

2026-02-12 09:00:00 · 1 minute read

数字牛马,来活了!

我需要一个批量重名的 CLI,可以实现文件名、后缀名的重命名,可以使用自然数递增、日期时间的表达式,也可以对文件名中的字符串进行替换。

数字员工干活干到今天了,也没给他取个名字,真的很抱歉。 为了方便记忆,就取个名字吧:木牛流马,就这么定了。

[Pasted image 20260211200527.png]

[Pasted image 20260211201542.png]

这个项目虽小,但是复杂度可见一斑,要处理完美,并不是那么简单的。 不过我们的木牛流马干得很好,就是名字有点长,打字有点累,就简称牛马吧。

测试

好,现在有这么一堆文件需要按自然数递增的方式重命名一下:

[Pasted image 20260211202400.png] [Pasted image 20260211210445.png]

上图是命令说明,下面我们来敲:batname . 按照默认自然数递增的方式来重命名当前目录下的所有文件:

[Pasted image 20260211202654.png]

敲入 y:

[Pasted image 20260211202714.png]

查看结果:

[Pasted image 20260211202732.png]

完美!


再来一条:batname -e "img-{0000}" . -e 表示使用表达式来重命名。 大括号这块是要动态计算的,四个零表示不足四位数的自然数前面补零凑成四位数。 比如:1.jpg 就会变成 img-0001.jpg

我们来试一试吧~

[Pasted image 20260211203704.png]

-y 表示无须用户手动确认,直接重命名~

使用 datetime 测试一下:

OK,现在有如下文件:

我想把其中的 img- 都去掉,敲命令:batname -x "img-" "" . -x 表示替换。 第一个用双引号包住是想要被替换的字符串; 第二个双引号里是新的字符串,这里什么都没写,是用来替换前面这个 img- 变成空,也就是去掉的意思。 最后那个点别丢了,表示当前目录。

走起~

还可以指定起始的自然数,例如:batname -e "img-{0}" -y -b 3 .

大家可以自由实验一下~

开源

国内:

https://gitee.com/ationlove/batname

国外:

https://github.com/ationlove/batname

下载:

https://gitee.com/ationlove/batname/releases/tag/v1.0


提醒:数据安全,人人有责。在你使用之前,请备份好数据~

已复制