美文网首页
使用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编写文件批量更名工具

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

  • TypeScript基础知识

    Why TypeScript 任何可以使用Javascript来编写的应用,最终会由JavaScript编写。——...

  • VUE--工作流--bpmn.js(一)

    一、bpmn.js 简介   一个BPMN 2.0渲染工具包和Web建模器。使用JavaScript编写,在不需要...

  • 使用 TypeScript 编写 npm 包

    使用 TypeScript 编写 npm 包跟 使用 JavaScript 编写 npm 包本质上是没有什么区别...

  • Postman中文文档——测试脚本

    测试脚本 使用Postman,您可以使用JavaScript语言为每个请求编写和运行测试。 编写Postman测试...

  • Java和 JavaScript

    使用Java语言编写的JavaScript的开源实现Rhino;

  • 用 JavaScript 编写测试脚本

    用 JavaScript 编写测试脚本 Truffle使用 Mocha 测试框架和 Chai 断言,为编写 Jav...

  • Web相关字典

    MDN的JavaScript操作web API接口列表: 当使用JavaScript编写网页代码时,有很多API可...

  • typescript .map

    使用TypeScript编写的Node.js应用中,编写的TypeScript会编译成JavaScript,在前端...

  • bLazy.js使用简介

    简介# bLazy是一个轻量级, 滚动懒加载图片的JavaScript库, 使用纯JavaScript编写, 不依...

网友评论

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

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