node批量修改文件名
const fs = require('fs'); const path = require('path'); /** * 批量修改文件名 * @param {String} folderPath */ function batchModifyFileName(folderPath = '') { // 获取文件夹中的文件列表 fs.readdir(folderPath, (err, files) => { if (err) return alert(`无法读取文件夹: ${JSON.stringify(err)}`); // 遍历文件列表 files.forEach((file) => { const filePath = path.join(folderPath, file); // 检查文件是否为目录 fs.stat(filePath, (err, stats) => { if (err) return alert(`无法获取文件状态: ${JSON.stringify(err)}`); // 只处理文件,忽略目录 if (stats.isFile()) { // 将小驼峰改为横杠 const newFileName = file.replace(/([a-z])([A-Z])/g, '$1-$2').> toLowerCase(); // 构建新的文件路径 const newFilePath = path.join(folderPath, newFileName); // 重命名文件 fs.rename(filePath, newFilePath, (err) => { if (err) { console.error('无法重命名文件:', err); } else { console.log(`重命名文件成功: ${file} <=> ${newFileName}`); } }); } }); }); }); } // E:/mzkj/mzkj/project/muzi-device-admin/src/assets/icons/svg // E:/mzkj/mssj/aWeb/demo/batchModifyFileName batchModifyFileName('E:/mzkj/mzkj/project/muzi-device-admin/src/assets/icons/svg');
以上代码只能在node环境下运行,在浏览器环境中运行报错。
node index.js
大小驼峰与符号之间的相互转换
/**
* 大小驼峰转为符号
* @param {String} name
* @param {String} str
* @returns
*/
function lettersToSymbol(name = '', str = '') {
return name.replace(/([a-z])([A-Z])/g, `$1${str}$2`).toLowerCase()
}
/**
* 符号转为大小驼峰
* @param {String} name
* @param {String} str
* @param {Boolean} isBig
* @returns
*/
function symbolsToLetters(name = '', str = '-_|$#', isBig = false) {
let regex = new RegExp(`[${str}]([a-z])`, "g"),
result = name.replace(regex, (match, letter) => letter.toUpperCase());
if (isBig) result = result.charAt(0).toUpperCase() + result.slice(1);
return result;
}
console.log(lettersToSymbol('myVariableName', '|'));
// my|variable|name
console.log(lettersToSymbol('MyVariableName', '_'));
// my_variable_name
console.log(symbolsToLetters('my-variable-name', '-', true));
// MyVariableName
console.log(symbolsToLetters('my_variable_name'));
// myVariableName
console.log(symbolsToLetters('my|variable|name'));
// myVariableName
console.log(symbolsToLetters('my$variable#name', undefined, true));
// MyVariableName