JS批量重命名文件

279 阅读1分钟

批量重命名图片

改下载的图片中的名称时候,感觉一个个修改太麻烦了,就像写个脚本执行一下,顺便多熟悉一下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,以及更优写法