Electron调用命令行(cmd)方法总结

方法一 使用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 // 安装到工程目录

  • 两种运行命令行的方式:
methodargumentsfunctionality
runcommandruns a command asynchronously
getcommand,callbackruns 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)
            }
 
        }
    );

官方文档:node-cmd - npm

参考:nodejs 运行CMD命令_llzkkk12的博客-CSDN博客_node-cmd

总结

方法一(使用child_process),可以指定命令行运行的路径,而方法二(使用node-cmd)不能

 希望本文对您有帮助,您的打赏是对我最大的鼓励~

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 24
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangjun0708

你的打赏将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值