I know how to set system or user specific environment variables:

Windows Environment Variables

Now, the problem is that the PATH variable is treated such that the value you enter for the user PATH will be automatically appended to the system PATH and that will be the effective PATH variable.

That is, say I have

(SYSTEM) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...

and (USER) PATH=C:\Program Files\Bar\bin (note that there is not %PATH% in this value)

then the resulting environment variable for this user will be:

(effective) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...;C:\Program Files\Bar\bin

However, I would rather like that for a very specific OS user account the PATH environment variable should have the bar\bindirectory at the beginning of the PATH instead of at the end.

Is there a proper way to tell windows to completely override the PATH variable of a user with the value for that user instead of appending it to the system PATHvariable?

Note: Obviously, from a batch file, all this doesn't matter as you can set and tweak the env.vars as you like.

  • Why not just ignore the USER section. Delete the USER Path variable and put everything into the SYSTEM Path variable, in the order you wish it to be. – Kevin Fegan Apr 25 '13 at 23:33
  • 1
    @KevinFegan: Well, because some services on the machine depend on that SYSTEM PATH and this specific user account would better be served by having a different PATH. I know that there are a lot of workarounds, but I was interested whether there is anything out of the box / on the OS/registry level to achieve this. – Martin Apr 26 '13 at 7:58

I had the same problem and this worked for me:

You can get "user path variable" through:

>reg query HKCU\Environment /v path

The output (on my machine) is:

HKEY_CURRENT_USER\Environment
    path    REG_SZ    C:\Program Files (x86)\GnuWin32\bin

But then you have to parse this and use the relevant part.

I read the solution here here and tested on my machine.

If you only need this to work for command prompt sessions, create a profile/init batch file and configure it in the registry, per https://stackoverflow.com/questions/17404165/how-to-run-a-command-on-command-prompt-startup-in-windows. E.g.,

reg add "HKCU\Software\Microsoft\Command Processor" /v AutoRun ^
  /t REG_EXPAND_SZ /d "%"USERPROFILE"%\init.cmd" /f

Then simply make modifications to the PATH in that batch file. E.g.,

SET USER_PATH=c:\whatever
SET PATH=%USER_PATH%;%PATH%

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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