27

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.

1

4 Answers 4

32

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
C:\Users\Charity>

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%.

6
  • 1
    Thanks for the tip! I tried setx PATH=%PATH%;;C:\test but I get syntax error :(
    – jsalonen
    Nov 7, 2012 at 19:22
  • 2
    There is no = sign when using setx. Do setx /?
    – EBGreen
    Nov 7, 2012 at 19:33
  • 4
    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. Aug 23, 2014 at 15:20
  • Note, you have to restart the shell after you make this change for it to take effect.
    – Doug
    Sep 14, 2014 at 21:34
  • minor note: set path =~ echo %PATH% [set path shows also the value of PATHEXT]
    – gerryLowry
    Dec 6, 2015 at 22:04
10

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?

4

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'
3
  • 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, 2014 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, 2014 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, 2014 at 20:40
4

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.

4
  • 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, 2012 at 19:11
  • Do you know if I can do a set that will persist?
    – jsalonen
    Nov 7, 2012 at 19:19
  • 1
    setx is for permanent changes
    – EBGreen
    Nov 7, 2012 at 19:20
  • Is there a way to set the variable just until the next restart? Otherwise, if I use set from another program (Let's say OS command from Python or MATLAB), will it hold as long the session of the program is open?
    – Royi
    Aug 14, 2016 at 20:23

Not the answer you're looking for? Browse other questions tagged .