const exec = require('child_process').exec
// 任何你期望执行的cmd命令,ls都可以
let cmdStr = './你的可执行程序名称 -p 需要输入密码的话'
// 执行cmd命令的目录,如果使用cd xx && 上面的命令,这种将会无法正常退出子进程
let cmdPath = '执行cmd命令的路径'
// 子进程名称
let workerProcess
runExec();
function runExec() {
// 执行命令行,如果命令不需要路径,或就是项目根目录,则不需要cwd参数:
workerProcess = exec(cmdStr, {cwd: cmdPath})
// 不受child_process默认的缓冲区大小的使用方法,没参数也要写上{}:workerProcess = exec(cmdStr, {})
// 打印正常的后台可执行程序输出
workerProcess.stdout.on('data', function (data) {
console.log('stdout: ' data);
});
// 打印错误的后台可执行程序输出
workerProcess.stderr.on('data', function (data) {
console.log('stderr: ' data);
});
// 退出之后的输出
workerProcess.on('close', function (code) {
console.log('out code:' code);
})
}
,下面我们就来说一说关于electron如何检测窗口已打开?我们一起去了解并探讨一下这个问题吧!
electron如何检测窗口已打开
方法一 使用child_process- 用法举例:
const exec = require('child_process').exec
// 任何你期望执行的cmd命令,ls都可以
let cmdStr = './你的可执行程序名称 -p 需要输入密码的话'
// 执行cmd命令的目录,如果使用cd xx && 上面的命令,这种将会无法正常退出子进程
let cmdPath = '执行cmd命令的路径'
// 子进程名称
let workerProcess
runExec();
function runExec() {
// 执行命令行,如果命令不需要路径,或就是项目根目录,则不需要cwd参数:
workerProcess = exec(cmdStr, {cwd: cmdPath})
// 不受child_process默认的缓冲区大小的使用方法,没参数也要写上{}:workerProcess = exec(cmdStr, {})
// 打印正常的后台可执行程序输出
workerProcess.stdout.on('data', function (data) {
console.log('stdout: ' data);
});
// 打印错误的后台可执行程序输出
workerProcess.stderr.on('data', function (data) {
console.log('stderr: ' data);
});
// 退出之后的输出
workerProcess.on('close', function (code) {
console.log('out code:' code);
})
}
官方文档:child_process 子进程 | Node.js API 文档
参考:Electron运行后台命令行程序 - 简书
方法二 使用node-cmd- 先安装node-cmd:
npminstall node-cmd
npminstall node-cmd –save // 安装到工程目录
- 两种运行命令行的方式:
method |
arguments |
functionality |
run |
command |
runs a command asynchronously |
get |
command,callback |
runs a command asynchronously, when the command is complete all of the stdout will be passed to the callback |
- 用法举例:
var cmd=require('node-cmd');
cmd.get(
'pwd',
function(err, data, stderr){
console.log('the current working dir is : ',data)
}
);
cmd.run('touch example.created.file');
cmd.get(
`
git clone https://github.com/RIAEvangelist/node-cmd.git
cd node-cmd
ls
`,
function(err, data, stderr){
if (!err) {
console.log('the node-cmd cloned dir contains these files :\n\n',data)
} else {
console.log('error', err)
}
}
);
官方文档:https://www.npmjs.com/package/node-cmd
参考:nodejs 运行CMD命令_llzkkk12的博客-CSDN博客_node-cmd
总结方法一(使用child_process),可以指定命令行运行的路径,而方法二(使用node-cmd)不能
,