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\"