const fs = require("fs"); //node extract.js -src "D:\桌面\tmp" -dest "D:\桌面\project\backup\A-28\public" let src = ""; let dest = null; let config = { from: 0, }; let arr = process.argv; for (let i = 2, len = arr.length; i < len; i += 2) config[arr[i].substring(1)] = arr[i + 1]; src = config["src"].replaceAll("\\", "/"); dest = config["dest"] ? config["dest"] : src + "/public"; !fs.existsSync(dest) && fs.mkdirSync(dest); let dirs = []; let fileArr = []; let dirIndex = -1; function loop(path) { let files = fs.readdirSync(path, { withFileTypes: true }); files.forEach((file) => { if (file.name === "Thumbs.db") { } else if (file.isDirectory()) dirs.push(path + "/" + file.name); else fileArr.push(path + "/" + file.name); }); dirIndex += 1; if (dirIndex !== dirs.length) loop(dirs[dirIndex]); } loop(src); config.from = Number(config.from) || 0; fileArr.forEach((val, seq) => { fs.copyFileSync( val, dest + "/" + (seq + config.from) + val.substr(val.lastIndexOf(".")) ); });
node extract.js -src "D:\桌面\tmp" -dest "D:\桌面\project\backup\A-28\public"