Unity联盟 发表于 2021-9-12 17:50

nodejs 重命名文件

const fs = require('fs');
vardata = process.argv.splice(2);
// 1. 定义两个工具函数
// 获取指定目录路径下的所有文件名
const getFileNames = path => {
    // 使用readdir获取指定目录下的所有文件名
    return fs.readdirSync(path);;
}

// 根据指定字符截取文件名,返回截取后的字段
const getFileSuffix =(fileName, splitChar) => {
    if(fileName){
// 取字符第一次出现的位置
const first = fileName.lastIndexOf(splitChar);
// 取字符最后一次出现的位置(根据需要选择)
// const first = fileName.lastIndexOf(splitChar);

const namelength = fileName.length; //取到文件名长度
return ;; //截取获得后缀名
    }
   
}
// 2. 定义目录
const dirName = data;
// 3. 读取与改写
let files = getFileNames(dirName);
var json={};
files.forEach((item, i) => {
    // 这里对旧名操作获取新名
    let arrName = getFileSuffix(item, ".")
    var songName = arrName;
    var songSuffixName = arrName;
    if(!json){
      json={
            "ImgPath":null,
            "VideoPath":null,
            "InfoPath":null,
            "SrtPath":null
      }
    }
    for (var key in json) {
      if (Object.hasOwnProperty.call(json, key)&&key==songName) {
            if(songSuffixName=="jpg"){
                json["ImgPath"] = item;
            }
            else if(songSuffixName=="mp4")
            {
                json["VideoPath"] = item;
            }
            else if(songSuffixName=="json")
            {
                json["InfoPath"] = item;
            }
            else if(songSuffixName=="srt")
            {
                json["SrtPath"] = item;
            }
            
      }
    }
    if(arrName=="webm"){

      console.log(arrName);
         //使用rename方法进行重命名
      //把webm的重新命名为mp4
      fs.rename(dirName+"/"+item, dirName+"/"+arrName+".mp4", (err) => {
            if (err) throw err;
            console.log('重命名完成'+dirName+"/"+arrName+".mp4");
      });
    }
   
})
console.log(JSON.stringify(json));
//设置起始索引
var startPrefixNum = 74;
for (const key in json) {
    if (Object.hasOwnProperty.call(json, key)) {
      const element = json;


      for (const key2 in element) {
            if (Object.hasOwnProperty.call(element, key2)) {
                const element2 = element;
                if(element2){
                  var splitName =getFileSuffix(element2,".");
                  var prefixName = splitName;
                  var suffixName = splitName;
                  if(suffixName=="mp4"){
                        fs.rename(dirName+"/"+element2, dirName+"/"+startPrefixNum+".mp4", ((dirName,startPrefixNum,err) => {
                            if (err) throw err;
                            console.log('重命名完成'+dirName+"/"+startPrefixNum+".mp4");
                        }).bind(this,dirName,startPrefixNum));
                  }
                  else{
                        fs.rename(dirName+"/"+element2, dirName+"/"+startPrefixNum+element2, (err) => {
                            if (err) throw err;
                            console.log('重命名完成'+dirName+"/"+startPrefixNum+element2);
                        });
                  }
                }
               
               
            }
      }
      startPrefixNum++;
    }
}输入node 脚本 路径
把视频信息分组 并按照序号重命名
页: [1]
查看完整版本: nodejs 重命名文件