批量重命名中文图片,并且把名字存入json文件中
需求:有几百张中文名字的图片,现在需要把图片的信息存入json文件,比如:
[
{title: '图片的中文名字', url: '图片的引用路径'}, ......
]
- 批量读取图片文件夹中的图片文件,然后把图片的名字取出来,存入数组(这就是我要的json结构),并且把那个数组打印出来,这里面还有一段
ren 原图片名字 图片重命名的新名字
这样的字符串,这是一个bat命令。
这段代码我写在了main.js里面
let requireSOb = []
let renStr = ''
const MapOb = require.context('./static/images/2021A', false, /\.(png|jpg)$/);
const requireAll = (requireContext) => {
// console.log('requireContext:', requireContext)
let imgArr = []
requireContext.keys().map((item) => {
// console.log('item:', item)
imgArr.push(item.replace('./', ''))
})
imgArr.sort((a, b) => {
return a.localeCompare(b)
// return a.charAt(0) - b.charAt(0)
// return a.charAt(0).localeCompare(b.charAt(0))
})
console.log('imgArr:', imgArr)
imgArr.forEach((item, i) => {
let obx = {
title: "",
src: "images/2021B/",
type: 2,
}
obx.title = item.replace('.jpg', '').replace('.png', '')
let newName = (i > 9 ? i : ('0' + i)) + '.' + item.split('.')[1]
obx.src = obx.src + newName
renStr += `
ren ${item} ${newName}
`
requireSOb.push(obx)
})
}
requireAll(MapOb)
- 把数组里面的对象,拷贝出来,手动保存到json文件里面,这一步就算好了,但是图片是中文名字,我们还需要把图片重命名一下,比如:BBB汽车A型号.jpg 改成 01.jpg,操作方式如下:
在图片路径下,新建一个txt文档,然后把renStr打印的字符串复制到新建的txt文件里面(ren是一个修改文件的bat命令),把后缀改成bat,保存。
双击运行bat文件,发现中文图片改不了名字,命令失败了?
编辑bat文件,另存为,把编码UTF-8,改为ANSI,保存,再双击运行,就可以修改图片名字了。
通过上面两步,几百张中文名字的图片,就操作完毕了。
如果是只修改图片名称,而且你的图片是有序的,只是想把中文去掉,可以利用excel自动增加的特性,快速获得图片名字列表,比如这样:
image.png
网友评论