如何使用Node JS执行Windows Shell命令(Cmd.exe)

时间:2013-04-10 07:16:09

标签: node.js cmd windows-shell

我想

C:\>ACommandThatGetsData > save.txt

但是我不想在控制台中解析和保存数据,而是想用 Node.JS

执行上述命令

如何使用 Node.JS 执行shell命令?

3 个答案:

答案 0 :(得分:13)

使用process.execPath()

process.execPath('/path/to/executable');

<击>

更新

我应该更好地阅读这些文件。

Child Process Module允许执行子进程。您需要child_process.execchild_process.execFilechild_process.spawn。所有这些都在使用中相似,但每种都有其自身的优点。他们使用哪个取决于您的需求。

答案 1 :(得分:4)

你也可以尝试node-cmd包:

const nodeCmd = require('node-cmd');
nodeCmd.get('dir', (err, data, stderr) => console.log(data));

答案 2 :(得分:2)

我知道这个问题很老了,但它帮助我使用 promise 找到了解决方案。 另见:this question & answer

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

async function runCommand(command) {
  const { stdout, stderr, error } = await exec(command);
  if(stderr){console.error('stderr:', stderr);}
  if(error){console.error('error:', error);}
  return stdout;
}


async function myFunction () {
    // your code here building the command you wish to execute ...
    const command = 'dir';
    const result = await runCommand(command);
    console.log("_result", result);
    // your code here processing the result ...
}

// just calling myFunction() here so it runs when the file is loaded
myFunction();