node.js - 从 node.js 运行一个 Windows 批处理文件

标签 node.js batch-file

我正在尝试在 node.js 中运行 test.bat 文件

这里是代码

var exec = require('child_process').execFile;

case '/start':
    req.on('data', function (chunk) {});
    req.on('end', function () {
      console.log("INSIDE--------------------------------:");      
       exec('./uli.bat', function (err, data) {
        console.log(err);
        console.log(data);
        res.end(data);
      });
    });
    break;

在运行这个 node.js 文件时

INSIDE--------------------------------:
{ [Error: Command failed: '.' is not recognized as an internal or ext
nd,
operable program or batch file.
] killed: false, code: 1, signal: null }

最佳答案

我已经找到了解决方案。它对我来说很好用。这会打开一个新的命令窗口并在子进程中运行我的主 Node JS。您无需提供 cmd.exe 的完整路径。 我犯了那个错误。

var spawn = require('child_process').spawn,
ls    = spawn('cmd.exe', ['/c', 'my.bat']);

ls.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});

ls.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});

ls.on('exit', function (code) {
console.log('child process exited with code ' + code);
});

关于node.js - 从 node.js 运行一个 Windows 批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22678933/

相关文章:

node.js - 如何关闭来自 winston 的日志对于Jest

batch-file - 如果任何命令行参数等于/,则显示帮助消息?

javascript - 从 UI 触发批处理文件

batch-file - 将一首歌曲的封面艺术批量复制到另一首(相同的文件名)

javascript - node.js 需要相对路径

javascript - Promise 不按顺序执行

windows - for 循环和定界符

mysql - 在mysql批处理中运行多个sql文件

javascript - 如何访问 Protractor 中 promise 内声明的变量

javascript - Node.js:Passport,检查用户是否已经登录