//匹配的数据源
const students = [
{ name: "王五", id: "19033210137" },
{ name: "张三", id: "19033210160" },
{ name: "李四", id: "19033210166" }
];
const reg = /(.txt)$/; //匹配文件后缀的规则,可自定义修改
const reg1 = /190332\d{5}/; //匹配学号的规则 190332开头,后5位为0-9的任意数字
const fs = require("fs");
const path = require("path");
fs.readdir("./", "utf8", (err, fileList) => {
if (err) throw err;
fileList.forEach((item, index) => {
//处理带后缀的文件
//筛选符合后缀的文件
if (reg.test(item)) {
//保存文件的后缀
const ext = path.extname(item);
//将保存学号对应学生的名字,默认学号不存在
let studentName = "名字未找到";
//保存老的文件名字
let oldFileName = item;
//匹配出老文件中的学号
let id = reg1.exec(oldFileName)[0] || "学号不存在";
//找到学号对应的学生名并赋值给studentName
for (let k in students) {
if (students[k].id == id) {
studentName = students[k].name;
}
}
//开始重命名文件
fs.rename(
`./${oldFileName}`, //老文件的路径
`./9机制二班${studentName}1-${id}${ext}`, //重命名新文件的名字的格式
(err) => {
if (err) throw err;
else {
console.log("文件重命名成功");
}
}
);
}
//处理不带后缀的文件夹
else {
//匹配出全部的文件夹,就是没有后缀的文件
if (!path.extname(item)) {
//将保存学号对应学生的名字,默认学号不存在
let studentName = "名字未找到";
//保存老的文件夹名字
let oldFileName = item;
//匹配出老文件夹中的学号
let id = reg1.exec(oldFileName)[0] || "学号不存在";
//找到学号对应的学生名并赋值给studentName
for (let k in students) {
if (students[k].id == id) {
studentName = students[k].name;
}
}
//开始重命名文件夹
fs.rename(
`./${oldFileName}`, //老文件的路径
`./19机制二班${studentName}-${id}`, //重命名新文件的名字的格式
(err) => {
if (err) throw err;
else {
console.log("文件夹重命名成功");
}
}
);
}
}
});
});
批量重命名文件名脚本[学委班长必备]
于 2022-11-02 17:39:03 首次发布