http://www.oschina.net/code/snippet_84535_7245
- 用法:将js内容拷到一文件中命名为batchRename.js,该文件可以放到任何你想更改文件名的文件夹目录,然后dos(或 linux 终端)进入该文件夹,然后执行node batchRename.js,然后它就会把该文件夹下的所有文件名前面加上它所在的文件夹名和一个"-".它的执行是递归的,会影响下面的所有子目录.
- 重命名文件的规则可以通过修改里面带注释那个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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述