在Ruby中的Windows命令中设置本地ENVvariables

我为本地开发者创build了一个Rake任务,它将构build项目,开始观察它进行自动编译,并启动Thin服务器以查看已编译的应用程序。

我实现了Foreman以允许设置当前项目所依赖的本地ENVvariables。 它工作得很好 – 除了它也需要在Windows上工作。

我的解决scheme是parsing.env文件,并手动设置variables我启动服务器,阿拉:

$ MY_ENV_VAR=12345 ruby -rubygems app.rb 

手工执行时效果很好。 但是,如果我尝试通过我的Rake任务执行该命令 – sh %{MY_ENV_VAR=12345 ruby -rubygems app.rb} ,则失败:

 Command failed with status (127): [MY_ENV_VAR=12345 ruby -rubygems app.rb...] 

我已经尝试用sh %{}execsystem%x{}执行它,并且没有运气的反引号。 有什么build议么?

尝试使用env参数使用coreel#system

 env = {'FOO' => '123'} cmd = 'echo $FOO' system(env, cmd) # => prints "123", returns true