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如何检测窗口已打开(Electron调用命令行cmd方法总结)

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

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)不能

,