js筆記九 當執行指令碼

2021-08-11 07:14:27 字數 3053 閱讀 7960

在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...