# Setting Windows environment variable

**URL:** <https://www.ruby-forum.com/t/setting-windows-environment-variable/69328>\
**Category:** Ruby\
**Created:** [September 20, 2006, 11:20am UTC](https://www.ruby-forum.com/t/setting-windows-environment-variable/69328 "2006-09-20T11:20:03Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![puppet](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/ecd19e/32.png) [@puppet](https://www.ruby-forum.com/u/puppet)\
**Post date:** [September 20, 2006, 11:20am UTC](https://www.ruby-forum.com/t/setting-windows-environment-variable/69328/1 "2006-09-20T11:20:03Z")

</div>

How can I set environment variable for windows(not for currect process)?  
What command should I use?  
I need functionality like setx.exe  
For example I need get env variable, edit it and set it back.

ruby 1.8.5 win

---

<div class="post-metadata">

**Author:** ![puppet](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/ecd19e/32.png) [@puppet](https://www.ruby-forum.com/u/puppet)\
**Post date:** [September 20, 2006, 11:38am UTC](https://www.ruby-forum.com/t/setting-windows-environment-variable/69328/2 "2006-09-20T11:38:20Z")

</div>

On 9/20/06, Pavel L. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> How can I set environment variable for windows(not for currect process)?  
> What command should I use?  
> I need functionality like setx.exe  
> For example I need get env variable, edit it and set it back.
> 
> ruby 1.8.5 win

Look for the older thread “Setting Windows Environment Variables”.  
You’ll probably have to mess with registry (see the alst post in the  
thread)

J.

---

<div class="post-metadata">

**Author:** ![puppet](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/ecd19e/32.png) [@puppet](https://www.ruby-forum.com/u/puppet)\
**Post date:** [September 20, 2006, 12:01pm UTC](https://www.ruby-forum.com/t/setting-windows-environment-variable/69328/3 "2006-09-20T12:01:05Z")

</div>

Jan S. wrote:

> Look for the older thread “Setting Windows Environment Variables”.  
> You’ll probably have to mess with registry (see the alst post in the  
> thread)

Thanks, this works for me:

require ‘win32ole’

def create\_environment\_variable(var\_name, value)  
wmi = WIN32OLE.connect(“winmgmts:\\.\root\cimv2”)  
env\_var = wmi.Get(‘Win32\_Environment’).SpawnInstance\_

env\_var.Name = var\_name  
env\_var.UserName = “”  
env\_var.VariableValue = value  
env\_var.Put\_  
end

var\_name = ‘ABC’  
value = ‘SOME\_VALUE’

create\_environment\_variable(var\_name, value)
