在Windows中使用Node更改控制台搜索路径

时间:2014-09-17 12:16:35

标签: windows node.js batch-file

我希望那里的节点专家可以指出我正确的方向。我试图使用节点脚本来更改Windows(Win7)中的路径环境变量。原因很复杂,但基本上,我需要计算一组路径,然后为当前控制台设置它。我不打算更改全局变量,只是用于当前控制台窗口的本地变量。这与运行类似:

Set Path = <SOME PATHS>

但是,更改节点脚本中的路径似乎只影响正在运行的脚本(而不是调用控制台)。我尝试使用 child_process 运行 Set Path = ,还尝试更直接的方法来更改 process.env.PATH 即可。这些都没有贯穿于调用过程。

因此以下两种情况都不会产生预期的效果:

process.env.PATH = newPaths.join(';');

var exec = require('child_process').exec;
exec('PATH='+ newPaths.join(';'), function(error, stdout, stderr){
    ...
});

我也尝试通过管理批处理文件(然后设置路径)所需的路径来破解它,但是我收到以下错误:

events.js:72
    throw er; // Unhandled 'error' event
          ^
Error: write EPIPE
    at errnoException (net.js:901:11)
    at Object.afterWrite (net.js:718:19)

为了达到这个目的,我用

结束了我的剧本
process.stdout.write(newPaths.join(';'));

并尝试将其传输到具有以下内容的批处理文件:

Set Path = %1

我认为这可能与脚本计时有关,但无法将管道节点脚本输出到批处理文件。我认为这应该有用,但我可能做错了。但是,如果可能的话,我宁愿在节点中找到一种方法来完成整个操作,因为管道方法有点笨拙。

0 个答案:

没有答案