• node递归批量重命名指定文件夹下的文件


    1、用法:将js内容拷到一文件中,命名为batchRename.js;

          该文件可以放到任何你想更改文件名的文件夹目录,然后dos(或 linux 终端)进入该文件夹,然后执行node batchRename.js;

          然后它就会把该文件夹下的所有文件名前面加上它所在的文件夹名和一个"-"。

          它的执行是递归的,会影响下面的所有子目录。

    2、重命名文件的规则可以通过修改里面带注释那个if里的逻辑进行自定义。

     1 var path = require("path");
     2 var fs = require("fs");
     3 var rootPath = __filename;
     4 renameFilesInDir(path.dirname(rootPath));
     5 
     6 function changeFileName(filepath){
     7     fs.stat(filepath,function(err,stats){
     8         if(stats.isFile()){
     9             //console.log("isFile,chaning filename...");
    10             var filename = path.basename(filepath);
    11             var parentDir =path.dirname(filepath);
    12             var parentDirname = path.basename(path.dirname(filepath)); 
    13             var thisFilename = path.basename(__filename);
    14             //console.log(thisFilename);
    15             //这个if就是进行更改文件名的逻辑,可以自行定义,这里定义为将文件命名为当前文件夹的名字加"-文件自身名"
    16             if(filename!=thisFilename&&filename.indexOf(parentDirname)<0){
    17                 var newName = parentDirname+"-"+filename;
    18                 var newPath =parentDir+"\"+newName;
    19                 console.log("going to rename from "+filepath+" to "+newPath);
    20                 fs.rename(filepath,newPath);    
    21             }
    22         }else if(stats.isDirectory()){
    23             console.log("============["+filepath+"] isDir===========");
    24             renameFilesInDir(filepath);
    25         }else{
    26         console.log("unknow type of file");
    27         }
    28     });
    29 }
    30 
    31 function renameFilesInDir(dir){
    32     fs.readdir(dir,function(error,files){
    33         var len = files.length;
    34         var file = null;
    35         for(var i=0;i<len;i++){
    36             file = files[i];
    37             changeFileName(dir+"\"+file);
    38         }
    39     });
    40 }
  • 相关阅读:
    JS截取字符串方法实例
    Adobe Flash Builder 4.6 打开时提示Failed to create the Java Virtual Machine
    ionic 上拉菜单(ActionSheet)安装和iOS样式不一样
    Echarts柱状图百分比显示
    js替换数组中字符串实例
    jQuery获取json数据
    ionic左滑删除
    JavaScript修改日期格式
    ionic之angular1.X缓存问题解决
    angularjs1.X获取前一天日期
  • 原文地址:https://www.cnblogs.com/softwarefang/p/7003661.html
Copyright © 2020-2023  润新知