平时喜欢拍照的朋友会有一个烦恼,照片拍得多了,想找到某张自己想要的照片会很麻烦,如果能够把自己每次拍得照片文件的文件改成一些有意义的名字,那么以后再查找的时候会很方便的。
但这种重复工作如果手工做会耗费大量的时间,如果能够自动作那在方便不过了。我也曾经用过很多改名的软件但是由于效率或者其他问题,往往用过几次就放弃了。
最近工作原因使用了window下的bat,发现用它来写一些想改名这样的程序比较方便,而且效率要比很多工具要高效、灵活。
啰嗦了这么的多还是给大家分享一下我的实现代码吧!
1 @ECHO OFF
2 REM 变量延迟
3 SETLOCAL ENABLEDELAYEDEXPANSION 4
5 REM File List
6 SET LIST=list.txt
7
8 REM Log File
9 SET LOG=exec.log
10
11 REM Get file list
12 IF EXIST "%LIST%" (
13 del %LIST% >> %LOG%
14 )
15 dir/b/o-d/a *.jpg >> %LIST%
16
17 FOR /F "tokens=1,2 delims=." %%a IN (%LIST%) DO (
18
19 SET /a x=!x!+1
20 SET nm=00000!x!
21
22 REM file rename
23 ren %%a.%%b PIC!nm:~-3!.JPG
24 ECHO ren %%a.%%b PIC2!nm:~-3!.JPG >> %LOG%
25
26 )
27
28 ECHO Success!!! >> %LOG%
批处理执行后的效果:
exec.log是bat文件执行后的log文件。
list是原来文件的列表。
其实原理很简单,就是用DOS的DIR命令获取当前目录下的文件列表
dir/b/o-d/a *.jpg >> %LIST%
利用Dos的重定向方法将列表导入到list.txt文件中,之后循环这个列表完成文件名的重命名。
这里只实现了图片文件的重命名,其实朋友们稍加改动就可以实现其他类型文件的重命名。这里只是抛砖引玉大家可以*发挥,Bat虽然很“古老”了,但是善加利用其实可以让我们的很多工作更加便利的。