我试图在不同于其父进程的目录中执行子进程。
var exec = require('child_process').exec;
exec(
'pwd',
{
cdw: someDirectoryVariable
},
function(error, stdout, stderr) {
// ...
}
);
我正在做上述工作(当然,运行“pwd”并不是我最终想要做的事情)。这将最终将父进程的PWD写入标准输出,而不管我为CDW选项提供了什么值。
我遗漏了什么?
(我确实确保了作为CWD选项传递的路径确实存在)
2条答案
按热度按时间w7t8yxp51#
该选项是当前工作目录的缩写,拼写为
cwd
,而不是cdw
。fhity93d2#
如果你在Windows上,你可能会被路径分隔符卡住。您可以通过使用内置Node.js
path
模块中的join
函数来解决这个问题。以下是@hexusyanide的答案,但使用execSync
和join
而不是exec
(它不会阻塞事件循环,但对脚本来说并不总是一个大问题)和unix文件路径(它们比窗口文件路径更酷、更好)。