Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

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

I am trying to add a PATH from command line, as with SETX %PATH%... it always expands the PATH, which I don't want.

PATHMAN is exactly for this purpose, but it doesn't work for me on Windows 7. It freezes most of the times, and it doesn't check for duplicated.

There must be a tool for managing PATH variables in the proper way. SETX would be perfect, but maybe not with the %PATH% syntax.

share|improve this question
up vote 11 down vote accepted

See the article Edit the PATH environment variable in Windows without pain.

It recommends using pathed :

For example, say that you have your Sysinternal tools in C:\Bin\Sysinternals and you want to add them to the PATH. Simply do:

pathed /append C:\Bin\Sysinternals /machine

If you want to add them to the user PATH system instead, then do:

pathed /append C:\Bin\Sysinternals /user
share|improve this answer
This is exactly what I was looking for! From the article, I have tried the other 3 solutions already without happiness. It seems this is the one I was looking for. Works perfectly! BTW, it has nothing to do with Sysinternals. – zsero Apr 8 '11 at 16:27
This is supposed to work but it has an essential bug, if you try to ADD/APPEND something to the the user path and user path is not defined the utility will fail to add the path. – sorin Sep 21 '11 at 14:22
I just gave this app a try; it was frustrating that it didn't seem to work. I realized that I have to run it while logged in as an Administrator, OR run it in a command shell that was started with "Run as Administrator". Also, you may need to categorically use "/machine" if you want affect the machine level path. Good luck! And thanks to @harrymc for the tip; +1 from me! – Dan H Sep 12 '12 at 13:17
FWIW, there is another "pathed" utility published on which seems to do pretty much the same with a slightly different syntax. – syneticon-dj Apr 3 '14 at 11:19
@syneticon-dj: The link in your comment is to the old version 0.8, but you have edited my broken link to point to the latest version (I validated your edit). – harrymc Apr 3 '14 at 11:29

(I know that you've already answered this question, but)

The problem with your usage of setx is that you are not quoting the string that you want to be set. Because the ; character is a command delimiter (you can string commands to be run in-succession with it), it thinks that you are setting path and then running another command.

What you should do is this:

setx /M path "C:\perl\bin;%path%"

This prepends my %path% variable with C:\perl\bin, because I want it to come before anything else that may be installed. The /M means that I mean the System EnvVar, not the user's.

share|improve this answer

There are three which I know methods out of which one is permanent(when adding in environment variables) and other 2 r temp.. just for setting path and thus the path set by them is destroyed after cmd is terminated(closed). Starting with methods:-

  1. Temporary method 1:-

    setx PATH "%PATH%;c:\path name;"

  2. Temporary method 2:-

    set PATH=c:\path name;%PATH%

  3. Permanent Method:-

    pathed /append c:\path name /machine (for all users) pathed /append c:\path name /user (for current user)

share|improve this answer

You must log in to answer this question.

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