在Windows中使用环境变量调用Ruby系统

时间:2016-08-13 00:23:19

标签: ruby windows powershell environment-variables

我需要设置一些环境变量才能在windows机器上执行命令,在ruby脚本中调用它。 在Linux上,你可以做到

cmd = 'echo $FOO'
system({'FOO' => '123'}, cmd) 

OUTPUT is "123"

但是在Windows上这不起作用,输出是$ FOO

如何在windows ruby​​系统调用上设置环境变量。我有几种变化的ENV并且出现错误或者仍然无法正常工作。

system({$ENV[:VAR1] => "WIN7"}, 'echo $ENV[:VAR1]')

1 个答案:

答案 0 :(得分:3)

Ruby的system()调用主机的默认shell,所以你需要说出shell的语言

Windows上的默认shell为cmd.exe,其中环境变量FOO必须引用为%FOO%才能展开。

因此,您的代码应为:

cmd = 'echo %FOO%'
system({'FOO' => '123'}, cmd)