批量重命名图片
改下载的图片中的名称时候,感觉一个个修改太麻烦了,就像写个脚本执行一下,顺便多熟悉一下node的fs模块
一次性对某一文件夹下多个图片文件进行名称的修改与调整,不用逐一手动重命名图片,快速更新文件名,执行脚本自动修改图片名
自动“9a9f0a7f89a7.jpg”,之类的图片名为002.jpg
我这里将设置文件重命名为从0 ~ 999,可以根据要命名的图片数量自定义设置。
reName.js代码如下:
const fs = require("fs");
const path = require("path");
// 要修改的文件路径
const folderPath = "./testPicture";
const imgType = ["jpg", "png", "jpeg", "gif", "bmp", "tiff", "ico", "webp"];
let count = 0;
function pad(num, size) {
let s = num + "";
while (s.length < size) s = "0" + s;
return s;
}
fs.readdir(folderPath, (err, files) => {
try {
if (err) {
console.error("读取文件出错", err);
return;
}
files.forEach((file) => {
// 如果用 path.extname() 获取扩展名,注意名称为空的额外处理
const ext = file.split(".").at(-1).toLowerCase();
if (imgType.includes(ext)) {
const oldFilePath = path.join(folderPath, file);
const newFileName = pad(count, 3) + "." + ext;
const newFilePath = path.join(folderPath, newFileName);
fs.rename(oldFilePath, newFilePath, (err) => {
if (err) console.error("重命名文件出错", err);
});
count++;
}
});
console.log(`重命名完成,共重命名 ${count} 个文件`);
} catch (error) {
throw new Error(error);
}
});
如果要修改重命名其他文件,修改imgType中的文件类型执行脚本即可
- 执行脚本直接使用 node 运行即可
node reName.js - 运行之前先备份!!!
写的比较草率,欢迎指正代码中bug,以及更优写法