批量重命名文件名脚本[学委班长必备]

//匹配的数据源
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("文件夹重命名成功");
            }
          }
        );
      }
    }
  });
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值