1. 程式人生 > >Node.js使用child_process呼叫系統命令示例

Node.js使用child_process呼叫系統命令示例

首先我們在D盤根目錄下新建一個test.bat檔案,他的內容如下:

echo %date%%time% >> D:/test.txt

他的目的很簡單,每次呼叫這個bat檔案,都會在D:/test.txt中追加一條當前日期和時間。
然後我們安裝依賴包:

npm install child_process

然後我們寫一個node.js程式呼叫這個命令:

var fs = require('fs');
var { exec } = require('child_process');

var timed_task = {};

timed_task.runProcedure = function () {
    fs.writeFileSync(`${__dirname}/../public/info.txt`, 'busy');
    var options = {
        encoding: 'utf8',
        timeout: 0,
        maxBuffer: 200 * 1024,
        killSignal: 'SIGTERM',
        cwd: null,
        env: null
    };
    var cmdS = 'D:/test.bat';
    exec(cmdS, options, (error, stdout, stderr)=>{
        var stat;
        if (error) {
            console.error(error);
            fs.writeFileSync(`${__dirname}/../public/info.txt`, 'error');
        }
        else {
            console.log('ok!');
            fs.writeFileSync(`${__dirname}/../public/info.txt`, 'free');
        }
        
    });
}

module.exports = timed_task;

timed_task.runProcedure();

執行後發現已呼叫了該指令碼。