我需要设置一些环境variables,然后在windows机器上执行命令,然后在ruby脚本中调用它。 在Linux上,你可以做
cmd = 'echo $FOO' system({'FOO' => '123'}, cmd) OUTPUT is "123"
但在Windows上这不起作用,输出是$ FOO
我怎样才能设置一个环境variables的Windowsruby系统调用。 我几个变种的ENV,并得到错误,或仍然无法正常工作。
system({$ENV[:VAR1] => "WIN7"}, 'echo $ENV[:VAR1]')
Ruby的system()调用主机的默认shell,所以你需要说出shell的语言 。
Windows上的默认shell是cmd.exe ,其中环境变量FOO必须被引用为%FOO%才能被扩展。
因此,你的代码应该是:
cmd = 'echo %FOO%' system({'FOO' => '123'}, cmd)