Node.js实现批量图片替换:保持文件名不变的高效方案
作者:星河时间:2026-10-30 13:32:17浏览:208
本文介绍如何利用Node.js批量替换文件夹内的图片文件,同时保持原有文件名不变。通过对比使用child_process执行ls命令与glob模块两种方案,展示如何读取源图片并写入目标目录,解决手动替换易出错、效率低的问题,提供完整的代码实现与效果演示。
Node.js批量替换图片且保留原文件名方法
场景描述:在文件夹A中存有大量图片文件,现需使用另一张指定图片逐一替换这些图片,但要求替换后的文件名与原文件名保持一致。
传统手工操作方式如下:
1)在浏览器中打开目标图片;2)执行另存为操作;3)选择目标文件夹;4)定位到具体图片;5)执行替换;6)确认操作。
随后需重复步骤2)至6)处理其余图片。此过程繁琐且容易因疏忽导致漏换或重复替换。

鉴于手动操作的低效性,采用Node.js脚本处理该任务更为适宜。具体实现代码如下:
var fs=require('fs'),
cp=require('child_process');
var url='Moriarty.jpg'
var rs=fs.readFileSync(url,{encoding:'hex',flag:'r'})
var write=(e)=>{
fs.writeFileSync(e,rs,{encoding:'hex',flag:'w'})
}
var buf_files=cp.execSync('ls 160906/*.jpg')
var arr_files=buf_files.toString().trim().split(/\s+/)
arr_files.forEach(write)
此外,还可以结合glob库与fs模块完成相同功能,代码示例如下:
var glob=require('glob'),
fs=require('fs')
var url='Moriarty.jpg'
var rs=fs.readFileSync(url,{encoding:'hex',flag:'r'})
var write=(e)=>{
fs.writeFileSync(e,rs,{encoding:'hex',flag:'w'})
}
glob('160906/*.jpg',(err,files)=>{
files.forEach(write)
})
运行效果如下图所示:
替换前的原始图片展示:

替换后的新图片展示:(注意图片文件名未发生变化)

上述内容即为Node.js实现批量图片替换并保持文件名不变的具体方法,供读者参考与实践。
作者最新文章
Node.js 安装配置与第一个 HTTP 服务器编写
2026-11-05 11:41:40
怎么使用 nvm 管理并平滑升级 Node.js 版本
2026-11-04 23:15:07
Node.js 怎么使用 zlib 模块解压 gzip 和 deflate
2026-11-03 23:40:50
直接覆盖安装还是用版本管理器?Node.js 升级方式对比
2026-11-03 22:59:07
Express.js 是什么:Node.js Web 框架核心概念与适用场景
2026-11-03 20:00:12
