批量重命名图片,并且把名字存入json文件中

批量重命名中文图片,并且把名字存入json文件中

需求:有几百张中文名字的图片,现在需要把图片的信息存入json文件,比如:

[
  {title: '图片的中文名字', url: '图片的引用路径'}, ......
]
  1. 批量读取图片文件夹中的图片文件,然后把图片的名字取出来,存入数组(这就是我要的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)
  1. 把数组里面的对象,拷贝出来,手动保存到json文件里面,这一步就算好了,但是图片是中文名字,我们还需要把图片重命名一下,比如:BBB汽车A型号.jpg 改成 01.jpg,操作方式如下:
    在图片路径下,新建一个txt文档,然后把renStr打印的字符串复制到新建的txt文件里面(ren是一个修改文件的bat命令),把后缀改成bat,保存。
    双击运行bat文件,发现中文图片改不了名字,命令失败了?
    编辑bat文件,另存为,把编码UTF-8,改为ANSI,保存,再双击运行,就可以修改图片名字了。

通过上面两步,几百张中文名字的图片,就操作完毕了。

如果是只修改图片名称,而且你的图片是有序的,只是想把中文去掉,可以利用excel自动增加的特性,快速获得图片名字列表,比如这样:


image.png

你可能感兴趣的:(批量重命名图片,并且把名字存入json文件中)