nodejs在nodejs应用程序的不同文件夹中执行二进制文件



我有一个nodejs应用程序,它从文件夹a执行,也是在文件夹a中的二进制X(使用子进程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);

官方Nodejs文档

cwd性质是这里的活性成分。它指定二进制文件应该从何处运行。spawn函数只是以与终端非常相似的方式执行可执行文件和二进制文件。

希望能有所帮助。

最新更新