没有最好的,只有最合适的。
今天我拿到了一堆图片,要给图片改名:
改成:
如果是几个,手动操作没什么,要是上百个,就太烦人了。
我第一个想到的是把两列文件名放到Excel的两列里,用VBA来做文件改名。后来突然想到用脚本来做也可以,就用DOS命令,一条条运行就可以。通过整理信息,制造一个批处理文件即可。
第一步,将所有图片文件名输出到一个列表。
> dir /B
ad.png
ae.png
af.png
ag.png
ai.png
al.png
......
将此列表copy出来,或者直接输出到一个文件也可以。
> dir /B > name.txt
注意,> 是输出到一个新文件,而原文件内容被覆盖, >> 是输出内容接续到文件末尾,这个和Linux是一样的。
而关于dir的使用方式,和各个参数的使用方法,可以使用help命令查看:
> help dir
直接输入help是查看所有命令。注意帮助信息里显示都是大写命令和参数,而DOS中是不分区大小写的。
第二步,将文件名提取出来,不要后缀。
使用Notepad++的列模式来选取,操作方式是按住ALT键,然后鼠标左键选取列内容。或者使用其他带列编辑模式的文本编辑器也可以。
但这里使用列编辑模式的条件是,文件名都是规则的,都是两个字母,如果长度不一致,那就要copy到Excel中,使用字符函数来处理了。
比如名字是abcdef.png, 那就使用Excel的字符串处理函数,假如此名字位于A2单元格, =LFFT(A2, LEN(A2)-4),得到的就是“abcdef”。
第三步,将得到的列表copy到excel里,然后使用vlookup函数,根据映射关系,找到需要修改的文件名信息,显示如下:
第四步,构造修改后的文件名称。
第五步,构造原文件名,并加上dos中的改文件名的命令。
第六步,将以上内容copy到一个bat文件中,执行即可。注意,因为bat文件的编码格式需要是ANSI的,否则运行后,中文文件名会都是乱码。
其实这个dos的批处理脚本,选择成ANSI编码后,在文本中输入中文,就是GB2312编码。在Notepad++中将文本编码从UTF-8改成ANSI再保存后,因为里面有中文,就会自动变成GB2312码,而GB2312码本来也是包含了ANSI编码。
默认创建的文本文件是UTF-8编码,因为通常我们使用的文本文件,好多都使用这个编码,现在的Windows的底层和上层都是用Unicode、UTF-8一套来处理字符信息了。那Dos因为历史原因,还是使用GB2312来处理中文信息编码。
结果如下: