Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Possible Duplicate:
What are PATH and other environment variables, and how can I set or use them?

I know that I can edit my environment variables in windows 8 by going to

Start -> All Apps -> Control panel -> System -> 
    Advanced System Settings -> Advanced -> Environment variables.

But honestly, this is ridiculously complex.

Is there an easier way to change environment variables in Windows 8?

For instance if I just want to append new folder to PATH, it is really annoying to go through all these steps. The UI also sucks, because it is really painful to edit long variable values with the small text input.

Requirement 1: I need the changes to persist (e.g. when I use set in console the changes are lost when I close the console)

Requirement 2: I'd prefer a solution that doesn't involve installing extra pieces of software, since this is the kind of problem that I stumble across every time I configure a new Windows box.

share|improve this question

marked as duplicate by Ƭᴇcʜιᴇ007, Hennes, Karan, Canadian Luke, BBlake Nov 7 '12 at 20:59

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Have you explored the set and setx command? With them you can set a persistent variable. Moreover, the value will be applied immediately, not after the next logon.

Example of windows SET command:

Print the PATH environment variable:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

Use set command to set the PATH variable

C:\Users\Charity>set PATH=%PATH%;C:\epicpath

The above command only applies to the current window and the change is lost when the cmd window is closed.

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\epicpath

Example of windows SETX command:

Print the PATH environment variable:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar

Use setx to set the environment variable:

C:\Users\Charity>setx PATH "%PATH%;C:\zombiepoke"
SUCCESS: Specified value was saved.

Close and re-open cmd terminal, then run:

C:\Users\Charity>echo %PATH%
C:\windows\system32;C:\windows and space;C:\foobar;C:\zombiepoke

You have to be careful with double quotes. If you let quotes get into your path variable it might break something. However they are necessary for specifying addendums to the original %PATH%.

share|improve this answer
Thanks for the tip! I tried setx PATH=%PATH%;;C:\test but I get syntax error :( – jsalonen Nov 7 '12 at 19:22
There is no = sign when using setx. Do setx /? – EBGreen Nov 7 '12 at 19:33
No args "setx" sets the variable in user context only. To set in system context use "setx /M". Not being aware of this may confuse you since "echo %PATH%" will show the system and user values concatenated. – Vituel Aug 23 '14 at 15:20
Note, you have to restart the shell after you make this change for it to take effect. – Doug Sep 14 '14 at 21:34
minor note: set path =~ echo %PATH% [set path shows also the value of PATHEXT] – gerryLowry Dec 6 '15 at 22:04

Set Environment variable in Windows 8.

You can access the advanced system setting by right clicking Computer in a file-explorer and going to properties.

This is same as older versions of windows. You can also set environment variables from command line as given here :

What are PATH and other environment variables, and how can I set or use them?

share|improve this answer

I change them in Powershell. For instance to add a folder to the PATH variable, open powershell then:

$newPath = $env:Path + ';C:\Temp'
[Environment]::SetEnvironmentVariable('Path', $newpath, 'Machine')

That would change it for all users. To change it just for the user running the command, change that last parameter to 'User'. Or to just change it temporarily in this session:

$env:Path += ';C:\temp'
share|improve this answer
great! how do you do the $env:Path + ';C:\Temp' concatenation at the command prompt? Set & Setx solutions here explain how to set the entire path at command prompt, but none explain how to APPEND something to the existing path. – johny why Jun 22 '14 at 18:57
Here's how to APPEND something to the existing path at a command prompt. /M is used to alter the SYSTEM variable, rather than the USER variable. Quotes are used since "My Folder" contains spaces: setx PATH "%PATH%;C:\My Folder" /M – johny why Jun 22 '14 at 19:39
Only problem with using command prompt is 255 character limit, and the system PATH is likely to exceed that (especially if you're appending more directories). Therefor, Powershell is the way to go (i could be wrong, but i believe there's no character-count limitation with Powershell). – johny why Jun 22 '14 at 20:40

It's pretty easy on the command line:

set MyVar=HelloWorld

(to get to the command line, type cmd from the start screen>.)

To view a variable:

echo %MyVar%

Use setx to permanently set a variable. The syntax is slightly different. Try looking here, or there's lots of other sites out there that will tell you how to use it.

share|improve this answer
Yeah thanks man I know this already, but the problem is that if you do changes in this way they don't persist -- i.e. when I close and reopen the command-line the variables are reverted to defaults. Updated my question to reflect this -- sorry. – jsalonen Nov 7 '12 at 19:11
Do you know if I can do a set that will persist? – jsalonen Nov 7 '12 at 19:19
setx is for permanent changes – EBGreen Nov 7 '12 at 19:20

Not the answer you're looking for? Browse other questions tagged or ask your own question.