最近接手了一个新项目,设计师给了很多图片,比如其中一个文件夹是:
因为名字是中文的,所以是不能直接扔到项目里的。
因此一个需求就冒了出来,如何批量修改文件名?
我最开始想到的是使用cmd,比如for + ren等。试了几下,最后没能满足我的需求。
其实,简单的shell命令,还可以百度下,更多的我就不懂了。
我的需求是什么呢?
【拔萝卜-1.png】=>【baluobo01.png】
后来突然想到,我为啥不用用node?
其实个人没有在项目里用它的经验。但百度一下相关API,尝试一下,没想到几分钟就搞定了!
代码如下(rename.js):
let fs = require('fs')
let files = fs.readdirSync('./')
files.forEach(v => {
if (/(\d+\.jpg)/.test(v)) {
fs.rename(v, 'baluobo' + RegExp.$1.padStart(6, '0'), () => {})
}
})
下面是我录的效果:
最后看一下正则那块儿:
/(\d+\.jpg)/.test(v)
当 v 是 "拔萝卜-1.png" 时,正则里括号捕捉的,即RegExp.$1,是 "1.png",后面再用 "0" 补齐成6个字符串。
代码相对,很简单,如果不清楚,欢迎看正则表达式括号的作用。
正则又一次帮到了我。
本文完。