批量修改本地文件.bat命令使用与node.js批量修改文件

小仙女项目多种因素导致需要批量修改文件,百度了解了bat命令,便捷的操作本地文件,于是学习一下,博客当做记录文档,方便以后查看。

1 .bat方法 :利用ren命令修改文件名称

  1. 在要修改的文件目录下shift+鼠标右键,弹出来的列表中选择打开命令行(win10中可能没有这个只有Powershell效果一样,单击就行)如下图:
    这里写图片描述
    输入”dir /b>rename.xls”,直接回车就行,代码的意思是将目录下的文件名称输出到一个excal中,excal名字是rename。
  2. 打开excal ,内容如下:
    这里写图片描述
    上边的名称是我目录下的文件名称,删除最后一个excal名称
  3. 这一步是编写你修改后想要的名称,如果只是简单地递增可以直接利用excal编写,如果是复杂的变化,可以粘到记事本中利用正则表达式替换:
    这里写图片描述
    想要的文件名称编辑好后可以进到下一步
  4. 接下来就是拼接.bat命令 将第一列和第二列合并
    这里写图片描述
  5. 然后和第三步一样,按住右下角向下拉,效果如图:
    这里写图片描述
  6. 然后创建bat文件,在同目录下新建一个文件修改后缀名称为.bat右键编辑,将excal第三列复制到bat文件中。
    这里写图片描述
  7. 然后保存,关闭编辑页面。双击运行.bat文件。

2. node本地文件编辑

  1. 由于对excal操作的不熟悉,导致只能重命名简单地文件名称,甚至后缀名称也不好修改。后来看到了张鑫旭大牛的博客。了解到了使用node的修改的方式(对于我个人来说对js的熟练度比对excal的熟练度高,所以对我来说这种方式比较简单,如果是excal比较熟练可能.bat方式更好些)。
  2. 环境要求:node环境 npm安装“fs”模块。
  3. 新建test.js文件,进入编辑:
var fs = require("fs");
// 现在我们要关心的是'icons'文件夹
// 我们不妨用变量表示这个文件夹名称,方便日后维护和管理
var src = 'image';

// API文档中中找到遍历文件夹的API
// 找到了,是fs.readdir(path, callback)
// 文档中有叙述:
// 读取 path 路径所在目录的内容。 回调函数 (callback) 接受两个参数 (err, files) 其中 files 是一个存储目录中所包含的文件名称的数组
// 因此:
fs.readdir(src, function(err, files) {
    // files是名称数组,因此
    // 可以使用forEach遍历哈, 此处为ES5 JS一点知识
    // 如果不清楚,也可以使用for循环哈  
    Date.prototype.Format = function (fmt) { //此处是我时间格式化用,不是修改文件必要
        var o = {
            "M+": this.getMonth() + 1, //月份
            "d+": this.getDate(), //日
            "h+": this.getHours(), //小时
            "m+": this.getMinutes(), //分
            "s+": this.getSeconds(), //秒
            "q+": Math.floor((this.getMonth() + 3) / 3), //季度
            "S": this.getMilliseconds() //毫秒
        };
        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o)
            if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        return fmt;
    }
    files.forEach(function(filename,i) {
        // 下面就是文件名称重命名
        // API文档中找到重命名的API,如下
        // fs.rename(oldPath, newPath, callback)
        // 下面,我们就可以依葫芦画瓢,确定新旧文件名称:
        var oldPath = src + '/' + filename, newPath = src + '/' + new Date().Format('yyyyMMdd') + "_10" + i + "." + filename.split(".")[1];
        // // 重命名走起
        console.log("新:"+oldPath+"老:"+newPath)
        fs.rename(oldPath, newPath, function(err) {
            if (!err) {
                console.log(filename + '下划线替换成功!');
            }
        })
    });
});
  1. 编辑好直接如.bat命令第1步打开命令行,输入node test.js回车运行:
    这里写图片描述
  2. 毕竟是js语法,相对来说熟悉点,所以感觉还可以。node了解的还是太少,这算是基本操作都不知道。比较尴尬。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值