我有一个nodejs应用程序从文件夹A执行,二进制X也在文件夹A中执行(使用子进程exec
)。二进制 X 在文件夹 A 中生成输出文件 O,因此始终从调用位置开始。
我需要nodejs应用程序来在仲裁文件夹中执行二进制文件X,并在与执行nodejs应用程序A的文件夹不同的文件夹中生成输出O。
所以基本上我需要像在不同的文件夹中一样执行二进制文件。
我想知道在nodejs中是否可以做到这一点以及如何做到这一点? 谢谢
最佳答案
如果我正确理解了问题,您希望 Binary X
在给定目录中输出文件 O
吗?如果我错了,请纠正我。
首先,我会检查二进制文件是否有一个选项来指定文件的输出位置。如果没有,也许解决此问题的最佳方法是设置当前工作目录。
我会执行以下操作:
import {spawn} from 'child_process';
import * as path from 'path';
import * as os from 'os';
const proc = spawn('./binary.exe', [<Array of parameters to binary>], {
cwd: `${path.join(os.homedir, filename)}.o`
});
proc.stdout.pipe(process.stdout);
cwd
属性是这里的 active 成分。它指定应该从哪里运行二进制文件。 spawn
函数只是以与终端大致相同的方式执行可执行文件和二进制文件。
希望有帮助。
关于javascript - Nodejs 从 NodeJS 应用程序的不同文件夹执行二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61537795/