我正在nodejs中创建一个子进程,它将在该子进程中编译并执行Java代码。下面是代码
const exec = require('child_process').exec;
exec('C:/Development/vilearn/vilearn_node/src/my.bat', (err, stdout, stderr) => {
if (err) {
console.error(err);
return;
}
console.log(stdout);
});
如何将参数从exec方法传递到批处理文件。 下面是我的批处理文件。
set path=C:\Program Files\Java\jdk1.8.0_111\bin
cd C:\Development\vilearn\vilearn_node\src
pwd
javac Hello.java
java Hello
从上面的代码中可以看到,我正在使用此批处理文件来编译Java代码。在这里,我想通过exec方法传递java文件所在的路径以及java文件的名称,以使其动态化。
请指导我
感谢帮助!
答案 0 :(得分:0)
使用“%*”选择所有参数,或使用“%1”,“%2”,...选择特定参数
并使用“ spawn”加载批处理,然后将参数作为字符串数组传递给第二个参数
答案 1 :(得分:0)
您可以像这样通过nodejs脚本传递参数,
| Name | Name | PetID |
-----------------------------------
| John | Snuffles | AC001-01 |
| John | Puffles | AC001-02 |
在您的bat文件中,
const exec = require('child_process').exec;
const param1 = 'Hello.java';
const param2 = 'Hello';
exec(`"C:/Development/vilearn/vilearn_node/src/my.bat" "${param1}" "${param2}"`, (err, stdout, stderr) => {
if (err) {
console.error(err);
return;
}
console.log(stdout);
});
在参数上使用双引号,以避免从空间分裂为2个参数