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\"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义