We can execute external command or any process from the node js. With the help of child_process
module we can achieve it.
1.
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); });
2.
let exec = require('child_process').exec exec("my.bat", function (err, stdout, stderr) { if (err) { console.log(stderr); return; } // Done. console.log(stdout); });
There are other method of child_process like.
- child_process.exec()
- child_process.execFile()
- child_process.spawn()
The importance of the distinction between child_process.exec()
and child_process.execFile()
can vary based on platform. On Unix-type operating systems (Unix, Linux, macOS) child_process.execFile()
can be more efficient because it does not spawn a shell by default.
On Windows, however, .bat
and .cmd
files are not executable on their own without a terminal, and therefore cannot be launched using child_process.execFile()
.
When running on Windows, .bat
and .cmd
files can be invoked using child_process.spawn()
with the shell
option set, with child_process.exec()
, or by spawning cmd.exe
and passing the .bat
or .cmd
file as an argument (which is what the shell
option and child_process.exec()
do). In any case, if the script filename contains spaces it needs to be quoted.
Source : Child_Process