webgame项目经常要维护更新,先在创建一个批次号,然后上传至更新服务器上然后再分别copy文件至各服务器的一个临时目录,然后更新结束后删除该临时目录。而本地需要根据批次号创建一系统的文件夹目录。之前是先手动创建一个批次号文件夹,然后写一个bat,创建更新批次相应的文件夹。现在如果用node.js写的话,比较简单。系统盘当前登录用户目录放一个update.js文件---好处是直接cmd的时候就是该目录了,节省时间。
调用的话就比较简单了。命令行里输入:“node update.js zh(语言包,不同的语言zh/tw/vi分别在不同的目录中) 批次号”
本来是想尝试在桌面文件夹创建一个bat文件,创建完目录后双击该bat文件就可以打开新创建的更新目录,但发现将utf-8转成ascii时出了问题,懒得去折腾了,先将就着用用了。update.js的代码也比较简单:
'fs');
'buffer');
3:
var update_dir = {
'E:/xx/【国内】/',
'E:/xxx/【台湾】/'
7: };
8:
function() {
//获取命令行参数
var args = process.argv.splice(2);
12:
if (args.length < 2) {
);
return ;
16: }
17:
var language = args[0];
var dirPath = update_dir[language];
20:
if (!dirPath) {
'请传入正确的语言包 zh/tw');
return ;
24: }
25:
var updateNo = args[1];
27:
'\n');
29:
var goalDirPath = dirPath + updateNo;
31:
if (fs.existsSync(goalDirPath)) {
'已经创建过此更新目录了');
else {
35: fs.mkdirSync(goalDirPath);
36:
'更新目录已创建成功\n');
38: }
39:
//创建Common、HttpRoot、dynConfig
'/Common';
42:
if (!fs.existsSync(commonDirPath)) {
44: fs.mkdirSync(commonDirPath);
45:
'Common目录创建成功');
47: }
48:
'dynConfig'];
50:
var i = 0, len = arr.length; i < len; i++) {
var a = arr[i];
'/' + a;
54:
if (!fs.existsSync(b)) {
56: fs.mkdirSync(b);
57:
'目录创建成功');
59: }
60: }
61:
/* 很遗憾这里未能实现想要的效果,如果路径没有中文倒是没什么问题...
//在桌面创建直接打开目录的bat
var desktopDirPath = 'G:/Documents and Settings/xxx/桌面/';
var quickBatPath = desktopDirPath + 'o_dir.bat';
if (fs.existsSync(quickBatPath)) {
fs.unlinkSync(quickBatPath);
console.log('\n删除“' + quickBatPath + '”文件');
}
fs.writeFileSync(quickBatPath, buffer, 'utf8');
*/
78: })();
79:
80: