随笔- 191  文章- 0  评论- 3  阅读- 59367 
复制代码
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   laremehpe  阅读(109)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示