节点js - 如何按顺序执行两个Windows命令并获取输出

时间:2018-03-07 23:31:09

标签: node.js

我正在尝试按顺序执行两个Windows命令并获得后一个的结果。类似的东西:

cd ${directory}
sfdx force:source:convert -d outputTmp/ --json

我浏览过并试过了一堆第三方库,比如node-cmd。但到目前为止我还没有运气。与node-cmd示例一样:

cmd.get(
    `cd ${directory}
    sfdx force:source:convert -d outputTmp/ --json`,
    function(err, data, stderr) {

这在我的macOS机器上非常有效。但在Windows上,它往往只执行第一个命令。

无论如何我可以解决这个问题吗?即使是一些只需要cd {directory} + real命令的人也可以真的很有帮助

1 个答案:

答案 0 :(得分:2)

你可以试试这个:

const exec = require('child_process').exec;

exec(`cd dir 
      sfdx force:source:convert -d outputTmp/ --json`, (err, stdout, stderr) => {
  if (err) {
    // node couldn't execute the command
    return;
  }
  console.log(stdout);
});

或使用&&没有反引号:

const exec = require('child_process').exec;

exec('cd dir && sfdx force:source:convert -d outputTmp/ --json', (err, stdout, stderr) => {
  if (err) {
    // node couldn't execute the command
    return;
  }
  console.log(stdout);
});