Windows系统下如何批量修改图片名称,本文我将介绍自己知道的两种方式。
下图有四张QQ图片,我将要对它们进行重命名。
效果如下图所示:
从gif图中可以看出,这种重命名可以达到批量修改效果。
如果我只是想把上面图片里的QQ截图去掉呢?那上面的方式就无能为力了,此时就需要借助bat脚本了。
不懂bat没关系,直接看第二种方法,跟着操作即可。
从上面git图里你可以看出,我在images/original文件夹下放了一个rename.bat的脚本文件。
其里面的代码如下所示:
@echo off setlocal ENABLEDELAYEDEXPANSION for %%a in (*.png) do set num=%%a & echo !num:~4! & ren !num! "../zhaicoder/"!num:~4!
你可以自己建一个txt文件,把我这个代码拷贝过去,然后将txt后缀改成bat。
接下来我们来执行它:
最简单的方式就是双击,如果双击无效,就要进入dos窗口里操作了。
Win+R,打开运行窗口,输入cmd,你就进入到dos窗口。
输入盘符+冒号,可直接切换磁盘。
输入cd+文件夹名称,可以切换文件夹。
执行bat脚本,直接输入bat文件全名称即可。
具体操作流程看下图:
执行完后,图片就都到zhaicoder文件夹下来了,如下图所示:
到此我就成功的批量去掉了每张图片开头的“QQ截图”这四个字。
本文是翟码农个人博客蓝翟红尘里维护相关分类下的有关图片批量命名的文章,转载请注明出处:http://www.zhai14.com/blog/d690da2764237811d1b067176885a549.html
上面那段bat脚本是针对我这种情形去掉开头“QQ截图”而写的。你可以根据你的需求做一些小改动。
1. 如果你的图片都是jpg后缀,你就将*.png改成*.jpg
2. 如果你不想放到zhaicoder这个目录下,你可以将zhaicoder替换成你要放的目录
3. 如果你不是截取名称的开头部分,而是中间部分呢?
上面代码里的~4表示取从第5位开始直接到结束的名称部分。
~m,n就表示取从第m位到第n位结束的名称部分。
总结:在这里的截取,一个汉字也是相当于1位
可以自行操练一下,掌握这个技巧了,以后可就很方便喽。
下面将记录代码的踩坑历程,不懂代码的可以不用看:
1. 一开始脚本代码如下:
@echo off for %%a in (*.png) do set num=%%a & echo %num:~4% & ren %num% "../zhaicoder/"%num:~4%
循环执行了,却死活只能改一张图片。
这是因为bat脚本for循环里设置num变量需要开启什么环境变量延迟,然后取用变量方式由%num%变成!num!.
2. %%a写成%a报错。
这是bat固定的规则,只好遵守了。
规则:在脚本里用%%,在dos命令行里执行,就只需要一个%
3. for循环里执行多条命令,开始是用换行格式的,可是总报错。do后面加了括号也是不行。所以才换成&连接多条命令。
解决1中的循环问题后,原本换行方式写的代码,并没有问题,以下脚本仍然ok。
@echo off setlocal ENABLEDELAYEDEXPANSION for %%a in (*.png) do ( set num=%%a echo !num:~4! ren !num! "../zhaicoder/"!num:~4! )