美文网首页
使用JavaScript编写文件批量更名工具

使用JavaScript编写文件批量更名工具

作者: 狍子子子 | 来源:发表于2017-12-13 00:00 被阅读0次

    写在前边

    工作过程中需要大量文件重命名,手动改吧太傻了,也懒,于是还是动手写个脚本一劳永逸。

    环境

    Node.js

    代码

    
    '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);
    }
    
    

    这里说下为什么要对files排序
    因为我发现readdirSync返回的数组会对结果排序
    比如文件夹里的顺序是 1.png,2.png,10.png
    返回的结果是 [1.png,10.png,2.png]!!!

    emoji.jpg

    所以逼不得已对files进行一次排序

    使用方法

    pic.png

    空格隔开第二开始依次是脚本路径,目标文件夹路径,前缀,起始数字,忽略的文件包含字符
    最后两个可以不用写

    写在后面

    第一次写文章,应该没有错别字

    相关文章

      网友评论

          本文标题:使用JavaScript编写文件批量更名工具

          本文链接:https://www.haomeiwen.com/subject/cqmoixtx.html