【发布时间】:2017-11-14 20:13:33
【问题描述】:
我们正在使用电子在 node js 中构建一个应用程序。所有其他机器上都安装了另一个软件。现在在我的节点 js 应用程序中,我想在各自的机器上启动这些软件。这可能吗?
【问题讨论】:
我们正在使用电子在 node js 中构建一个应用程序。所有其他机器上都安装了另一个软件。现在在我的节点 js 应用程序中,我想在各自的机器上启动这些软件。这可能吗?
【问题讨论】:
您可以通过命令和通过 spawn 的子进程来执行此操作。 见▶NodeJs API Docs
const { spawn } = require('child_process');
const bat = spawn('cmd.exe', ['/c', 'my.bat']);
bat.stdout.on('data', (data) => {
console.log(data.toString());
});
bat.stderr.on('data', (data) => {
console.log(data.toString());
});
bat.on('exit', (code) => {
console.log(`Child exited with code ${code}`);
});
const { spawn } = require('child_process');
const ls = spawn('ls', ['-lh', '/usr']);
ls.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
ls.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
ls.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
【讨论】:
下面的代码对我很有帮助。
var cmd = require('node-cmd');
cmd.get('WMIC /node:"ABC-XXXXXXX" process call create "C:\\Setup\\app7.exe"',function(err, data, stderr){
console.log('err:', err)
console.log('stderr:', stderr)
})
远程机器名称:ABC-XXXXXXX
远程机器上exe的路径:C:\Setup\app7.exe
【讨论】: