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

批量重命名中文图片,并且把名字存入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自动增加的特性,快速获得图片名字列表,比如这样: