nodejs 文件重批处理的批处理

读者您好!

有一天想看cocosCreator的js源码,于是下载解压到手机上了,但是手机打开不了.js文件,想看还得动手重命名为.txt,如果一个个重命名比较费劲,所以我就花了点时间写了个批处理的脚本。

废话少说代码如下:


// create by Blade on 2019-3-10

var fs = require("fs")
var path = require("path")

// console.log("当前执行路径:"+process.cwd())
/*
**	dir 路径名
**	源文件后缀名,例如”.js“
**	目标文件后缀名,例如”.txt“
*/
var renameFile = function(fileName,sourceExtname,targetExtname){
	// 
		
	// dirname路径名
	var dirname = path.dirname(fileName);
	// basename文件名
	var basename = path.basename(fileName);
	var names = basename.split(".");
	console.log("basename:"+basename+",dirname:"+dirname)
	// 目标文件
	if(names.length>2||names.length!=2||names[1]!=sourceExtname.slice(1)){
		console.log("非"+sourceExtname+"类文件不执行重命名操作!fileName:"+fileName);
		return;
	}
	// extname后缀名
	var extname = path.extname(basename);
	if(extname == sourceExtname){
		// 要重命名的文件的路径
		var destName = dirname+"/"+names[0]+targetExtname;
		fs.rename(fileName,destName,function(err){
			if(err){
				console.error("文件"+fileName+"重命名失败,错误信息:"+JSON.stringfy(err));
				return;
			}
			else{
				console.log("文件"+basename+"重命名完成,路径:"+dirname);
			}
		});
	}

}
// 路径或文件path是否存在
var exists = function(path){
	return fs.existsSync(path);
}
// 判断当前路径path是否是一个文件
var isFile = function(path){
	return exists(path)&&fs.statSync(path).isFile();
}
// 判断path是否是一个文件夹
var isDir = function(path){
	return exists(path)&&fs.lstatSync(path).isDirectory();
}
/*
**	dir 路径名
**	源文件后缀名,例如”.js“
**	目标文件后缀名,例如”.txt“
*/
var renameDir = function(dir,sourceExtname,targetExtname){
	console.log("dir:"+dir)
	fs.readdir(dir,function(err,files){
		if(err){
			console.log("目录错误:dir:"+dir);
			return;
		}
		for(var i =0,len = files.length;i<len;i++){
			var fileName = dir+files[i];
			console.log("fileName:"+fileName);
			var basename = path.basename(fileName);
			var names = basename.split(".")
			// names.length == 1 的判断是为了不检查隐藏文件
			if(names.length==1){
				if(isFile(fileName)){
					renameFile(fileName,sourceExtname,targetExtname);
				}
				else if(isDir(fileName)){
					console.log("文件夹:"+fileName);
					renameDir(fileName+"/",sourceExtname,targetExtname)
				}
				else{

				}
			}
			
		}
	})
}
// 要重命名的路径
var targetPath = "/Users/Blade/cocosCreatorEngin/";

// 执行批处理命令 把所有.js文件重命名为.txt文件
renameDir(targetPath,".js",".txt");




我是用nodejs环境运行的,在终端中输入:node fileRenameBatch.js

百度网盘原文件链接:https://pan.baidu.com/s/1Uumhwc3g54gf1DpLfx4qAg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值