在windows下面,現在有powershell,linux下面有bash,也可以用python,但是即然用了node,也就可以用js寫指令碼了。
這裡提供乙個簡單例子,就是讀取apk的版本號,執行環境是windows下面的node 6.x
下面這個這個xutils.js提供了讀取apk版號的所有功能
const util = require('util');
const exec = require('child_process');
const fs = require('fs');
class xutils paramobject
*/static isobjectnull(paramobject)
/***
* @param paramstr
* @param paramfindstr
* @returns boolean 返回結果
*/static iscontains(paramstr, paramfindstr)
/*** 取apk的版本號
* ******: package: name='com.***.yyyy' versioncode='1611' versionname='1.2.43' platformbuildversionname='8.0.0'
* @param paramline 存在版本號的那一行
* @param paramresultmap 儲存結果的map
*/static readapkversiontomap(paramline, paramresultmap) }}
/*** 讀取sdk版本號 如:sdkversion:'19'
* @param paramline
* @param paramresultmap
*/static readsdkversiontomap(paramline, paramresultmap)
}/**
* 讀取許可權
* ******:uses-permission: name='android.permission.read_phone_state'
* @param paramline
* @param paramlist
*/static readapkpermission(paramline, paramlist)
}/**
* * @param paramexec aapt的全路徑名稱
* @param paramapkname 要分析的名稱
* @param paramcwd exec工作路徑
*/static getapkversion(paramexec, paramapkname, paramcwd) ;
let cmdargs = ['d', 'badging', paramapkname];
let ret = ;
if (!this.isobjectnull(paramcwd))
let strout = null;
try
else
if (this.iscontains(line, 'sdkversion:') || this.iscontains(line, 'targetsdkversion:'))
else
if (this.iscontains(line, 'uses-permission:'))
else
}} catch (e)
return ret;
}}exports.xutils = xutils;
const exec = require('child_process');
const = require('./xutils');
let args = process.argv.splice(2); //注意,這裡需要讀取乙個引數,也就是配置json
do let config = require(args[0]); //載入配置
console.log("當前配置:");
console.log(config);
let cfg = config.config;
let strsrcapk = cfg.apk_src;
let str_aapt = cfg.aapt;
let r = xutils.getapkversion(str_aapt, strsrcapk);
if(r.err !== 0)
console.log(r); //顯示處理後的結果,不需要,可以刪除
let ver = r.version.get('versionname');
console.log(ver);
}while(false);
process.exit(0);
這個是在執行引數中指定的 main.json
}
為了方便使用,在main.js目錄下,建乙個main.bat,來呼叫這個js
node main.js ./main.json
pause
這裡,就可以實現顯示指定的apk版本號的功能了
const exec = require('child_process');
//這裡是呼叫bat檔案的例子
/** * 複製檔案
* @param paramsrc
* @param paramdest
*/function
copyfile
(paramsrc, paramdest) ).tostring();
console.log("copy ok!");
}catch(e)
}
這裡是cp.bat
rem 直接呼叫dos命令
copy %1 %2
通過使用execfilesync,我們就可以用js寫一些高階處理執行指令碼 自動執行指令碼
乙個偶然的機會,發現了自動執行指令碼的東東,真是神奇啊,可以執行sql 控制台命令等。由於研究的時間有限,所以知之甚少 先和大家分享下,哈 dim consoleprocess as new system.diagnostics.process consoleprocess.startinfo.fi...
C MFC ShellExecute執行指令碼
目前知道三種方式 winexec,shellexecute createprocess。1.阻塞式呼叫,呼叫時程序阻塞 void cmfccodedlg callshellscript cstring path,cstring fbat,cstring param shexecinfo.cbsize...
Mac執行指令碼
由於iphone的成功,用mac os的朋友也越來越多,建立批處理指令碼檔案還是非常重要的。由於在mac下面建立指令碼檔案和windows下面大不一樣,於是寫篇博文紀錄一下。plain view plain copy 1.bin bash 2.echo abc plain view plain co...