如何从节点js在windows上执行.bat脚本

如何从节点js在windows上执行.bat脚本,windows,node.js,batch-file,Windows,Node.js,Batch File,我有一个节点js文件,它将执行我的bat文件。我尝试使用NodeJS子进程模块的exec,但没有成功 让我与您分享我的节点js脚本: var startTime = '2014-11-27 17:0:42'; var threadName = '<Thread 0>'; var categoryName ='AlarmCategory'; var alarmLevel = 'Fatal'; var alarmCategory = 'OS'; var alarmMessage = 'c

我有一个节点js文件,它将执行我的bat文件。我尝试使用NodeJS子进程模块的exec,但没有成功

让我与您分享我的节点js脚本:

var startTime = '2014-11-27 17:0:42';
var threadName = '<Thread 0>';
var categoryName ='AlarmCategory';
var alarmLevel = 'Fatal';
var alarmCategory = 'OS';
var alarmMessage = 'corrupt';

var cp = require('child_process');
msg = cp.exec('handler.bat' +" " + startTime ,function (error, stdout, stderr) {
    if (error) {
        console.log(error.stack);
        console.log('Error code: '+error.code);
        console.log('Signal received: '+error.signal);
    }
    console.log('Child Process STDOUT: '+stdout);
    console.log('Child Process STDERR: '+stderr);
});
现在我只打印一个参数

我得到的错误是:

"C:\Program Files (x86)\JetBrains\WebStorm 8.0.4\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" test\test_cmd.js
Error: Command failed: 'handler.bat' is not recognized as an internal or external command,
operable program or batch file.

我解决了我的问题。我现在正在使用execFile函数,因为我还需要传递参数。请务必注意,当您使用execFile使用execute命令时,请确保在exeFile命令中设置cwd选项。因为它查找子进程文件,但找不到该文件。直接为.bat文件设置完整路径无效

我确实喜欢这个

msg = cp.execFile('handler.bat' ,[startTime,threadName] ,{cwd:'/Node Js/baflog/sigma-logger/test'},function (error, stdout, stderr) {
.... ..
...
}

这可能会对您有所帮助:我以前认为,创建或检查环境有点重。我确信这件事只能用命令来完成。我错过了一些愚蠢的事情。
msg = cp.execFile('handler.bat' ,[startTime,threadName] ,{cwd:'/Node Js/baflog/sigma-logger/test'},function (error, stdout, stderr) {
.... ..
...
}