JavaScript实现批量重命名文件
批量重命名图片
改下载的图片中的名称时候,感觉一个个修改太麻烦了,就像写个脚本执行一下,顺便多熟悉一下node的fs
模块
一次性对某一文件夹下多个图片文件进行名称的修改与调整,不用逐一手动重命名图片,快速更新文件名,执行脚本自动修改图片名
自动“9a9f0a7f89a7.jpg”
,之类的图片名为002.jpg
我这里将设置文件重命名为从0 ~ 999
,可以根据要命名的图片数量自定义设置。
reName.js
代码如下:
const fs = require("fs"); const path = require("path"); // 要修改的文件路径 const folderPath = "./testPicture"; const imgType = ["jpg", "png", "jpeg", "gif", "bmp", "tiff", "ico", "webp"]; let count = 0; function pad(num, size) { let s = num + ""; while (s.length < size) s = "0" + s; return s; } fs.readdir(folderPath, (err, files) => { try { if (err) { console.error("读取文件出错", err); return; } files.forEach((file) => { // 如果用 path.extname() 获取扩展名,注意名称为空的额外处理 const ext = file.split(".").at(-1).toLowerCase(); if (imgType.includes(ext)) { const oldFilePath = path.join(folderPath, file); const newFileName = pad(count, 3) + "." + ext; const newFilePath = path.join(folderPath, newFileName); fs.rename(oldFilePath, newFilePath, (err) => { if (err) console.error("重命名文件出错", err); }); count++; } }); console.log(`重命名完成,共重命名 ${count} 个文件`); } catch (error) { throw new Error(error); } });
如果要修改重命名其他文件,修改imgType
中的文件类型执行脚本即可
- 执行脚本直接使用 node 运行即可
node reName.js
- 运行之前先备份!!!
方法补充
除了上文的方法,小编还为大家整理了一些其他JavaScript重命名文件的方法,有需要的可以了解下
方法一:
'use strict' let fs = require('fs'); let args = process.argv; let dist = 'dist'; let src = 'src'; let index = 0; let ignore = ''; // 目标路径 dist = args[2]; // 名字前缀 src = args[3]; // 递增后缀 index = args[4] || 1; // ? 忽略的文件 ignore = args[5] || ""; let files = fs.readdirSync(dist); let sortValue = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; files.sort(function (a, b) { let index = -1; for (let i = sortValue.length - 1; i >= 0; i--) { index = a.indexOf(sortValue[i]); if (index != -1) { // console.log("a: ", a, " i: ", i, " index: ", index); break; } } if (index == -1) { return 0; } else { let aid = parseInt(a.substring(index)); let bid = parseInt(b.substring(index)); if (aid == NaN || bid == NaN) { return 0; } else { return aid - bid; } } }); for (let i = 0; i < files.length; i++) { if (ignore !== "" && files[i].indexOf(ignore) === -1) { continue; } let stat = fs.statSync(dist + "\\" + files[i]); let runRename = function (stat) { if (stat.isFile()) { let prefix = dist + "\\"; let suffix = files[i].substring(files[i].indexOf(".")); let oldName = prefix + files[i]; let newName = prefix + src + index + suffix; fs.renameSync(oldName, newName); index++; } }; runRename(stat); }
方法二:js 批量修改文件名后缀
在需要修改的文件夹除创建一个js文件 ,通过 node .\****.js
运行或在创建一个.bat文件:node .****.js pause 后双击
记得修改dirName
// 引入 fs 文件系统模块 let fs = require('fs') const dirName = 'mus' // 读取目标文件夹名称 const reg = /(?<=[.])[a-z]+/ // 文件后缀 匹配规则 // 读文件夹,获取文件名列表 let fileList = fs.readdirSync(dirName) // 过滤出想要的文件类型 let resultList = fileList.reduce((pev, cur) => { // 获取后缀 const curPicType = cur.match(reg)[0] if (['mgg', 'flac', 'ogg', 'lrc'].includes(curPicType)) { pev.push(cur) } return pev }, []) console.log('文件列表', resultList) // 循环当前文件名列表,根据需要重写名字 for (let i = 0; i < resultList.length; i++) { // 文件完整名称 const curFileName = resultList[i] // 后缀名 const fileFormat = curFileName.match(reg)[0] // 去掉后缀的文件名 const fileCode = curFileName.split('.')[0] // oldPath 原地址 const oldPath = `./${dirName}/${curFileName}` // newPath 目标地址 let newPath = '' // 修改方式 // 如果想根据不同条件,将文件分别放到不同的文件夹,按需更改 newPath 即可 if (fileFormat == 'ogg' || fileFormat == 'mgg') { newPath = `./${dirName}/${fileCode}.mp3` } else { newPath = oldPath } // 确认修改 fs.rename(oldPath, newPath, (err) => { if (err) throw err; console.log(`修改成功 -- ${newPath}`); }) }
到此这篇关于JavaScript实现批量重命名文件的文章就介绍到这了,更多相关JavaScript重命名文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Javascript highcharts 饼图显示数量和百分比实例代码
这篇文章主要介绍了Javascript highcharts 饼图显示数量和百分比实例代码的相关资料,这里附有实例代码,需要的朋友可以参考下2016-12-12JS控件bootstrap suggest plugin使用方法详解
这篇文章主要介绍了JS控件bootstrap suggest plugin的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-03-03
最新评论