我有节点js文件,它将执行我的bat文件。我尝试使用节点js子进程模块的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);
});
我的蝙蝠脚本。此脚本采用输入参数和回声。
@echo off
set startTime=%1
set thread=%2
set categoryName=%3
set alarmLevel=%4
set alarmCategory=%5
set alarmMessage=%6
Echo #####################
Echo This tool will help you get the users info
Echo #####################
Echo hi %arg1%
目前我只打印一个arg。
我得到的错误:
"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.
答案 0 :(得分:2)
我解决了我的问题。我现在正在使用execFile()函数,因为我还需要传递参数。请务必注意,当您使用execFile()执行命令时,请务必设置&#34; cwd&#34; exeFile()命令中的选项。因为它查找子进程文件并且找不到该文件。直接为.bat文件设置完整路径不起作用。
我确实喜欢这个,
msg = cp.execFile('handler.bat' ,[startTime,threadName] ,{cwd:'/Node Js/baflog/sigma-logger/test'},function (error, stdout, stderr) {
.... ..
...
}