const fs = require("fs");

// directory path
let config = {
  affix: null,
  src: null,
  from: 0,
};

const resultList = [];

let arr = process.argv;
for (let i = 2, len = arr.length; i < len; i += 2) {
  config[arr[i].substring(1)] = arr[i + 1];
}

config.src = config.src.replaceAll("\\", "/");

!config.src.endsWith("/") && (config.src += "/");

console.log(config);

const changeType = config.affix !== null;

changeType &&
  config.affix.indexOf(".") === -1 &&
  (config.affix = "." + config.affix);

new Promise((resolve, reject) => {
  fs.readdir(config.src, (err, files) => {
    if (err) reject();

    let i = files.length;

    files.forEach((file) => {
      fs.rename(
        config.src + file,
        config.src + ("---" + i-- + ".") + file.split(".")[1],
        (err) => {
          err && console.log("error", err);
        }
      );
    });

    resolve();
  });
})
  .then(() => {
    fs.readdir(config.src, (err, files) => {
      if (err) throw err;
      let i = files.length + Number(config.from);
      files.forEach((file) => {
        const name =
          i-- + (changeType ? config.affix : "." + file.split(".")[1]);
        resultList.push(name);
        fs.rename(config.src + file, config.src + name, (err) => {
          err && console.log("error", err);
        });
      });
      console.log(resultList.join("|"));
    });
  })
  .catch((err) => {
    throw err;
  });
//运行命令:
npm init -y
npm i fs
//src 目标文件夹
//affix 修改后缀名为.mp3
node .\changeFileName.js -affix .txt -src "D:\xxx\test\"
 

 

 posted on 2023-02-08 10:37  laremehpe  阅读(103)  评论(0编辑  收藏  举报