22

Is there anyway to change the PATH environment variable (or variables in general) on Windows 7 Exterprise (64 bit) and have it take effect in PowerShell or the command prompt (cmd.exe) without requiring a restart?

I don't mind having the reopen the shell/prompt, but having to restart is too much.

I'm currently changing variables through Advanced Systems settings ->Environment Variables`.

HopelessN00b
  • 1,882
  • 3
  • 21
  • 29
Danielb
  • 619
  • 2
  • 8
  • 11
  • MS outline the issue with anything relying on [services running under the local system account](https://support.microsoft.com/en-us/help/821761/changes-that-you-make-to-environment-variables-do-not-affect-services), but that should only affect [PSExec sessions](https://superuser.com/questions/614165/command-prompt-as-system-user-windows-7). Also, many client programs using environment variables may not require reboot or user logout/login, so long as they are restarted after the EV change. (verified with VS2017) – Laurie Stearn Jan 11 '18 at 05:02

3 Answers3

22

The requirement really isn't "must restart", it's "must log out/log back in" -- mostly for your current user processes to pick up the change.

If all you're interested in is for the variable changes to take effect in a command window or power shell, starting a new shell after making said changes should be all that's needed.

quack quixote
  • 42,186
  • 14
  • 105
  • 129
  • 11
    Its weird creating a new terminal/shell window after making changes always used to work on previous windows versions but it doesn't seem to be enough on Win7 :( – Danielb Nov 29 '09 at 19:27
  • Also programs (in my case NUnit) will often read the new path changes if you open and close them. – Matthew Lock Apr 02 '12 at 23:53
  • 1
    If use "Open Command Window Here" in explorer I can see the new path with echo %PATH% but not if I just run cmd.exe – Glenn Lawrence Mar 18 '14 at 06:06
  • 1
    @GlennLawrence for me it's the opposite: I see my changes if I invoke `cmd` from the Start menu (either by searching for it or by using the `Run…` function). If I invoke it from a batch file or from the context menu, I do not see my changes. – Saulo Silva Mar 31 '14 at 19:41
  • Make sure you restart the process creating cmd after changing the system environment variables. Killing explorer often does the trick. – masterxilo Feb 21 '16 at 18:31
3

In my Win7 (64-bit) the console command

path=drive:\dir;%path%

adds drive:\dir to the beginning of the current console's path without starting a new console. No idea why your Win7 should behave differently. I'd like to know how some programs add themselves to the %path% variable for every instance of the console, though.

To change the Windows 7 path manually, check: http://geekswithblogs.net/renso/archive/2009/10/21/how-to-set-the-windows-path-in-windows-7.aspx

Glorfindel
  • 4,089
  • 8
  • 24
  • 37
TJGeezer
  • 31
  • 2
2

I solved this problem by choosing Command Prompt or Windows PowerShell from the start menu, right clicking and choosing "Run as administrator". Then the new command window will recognize the changes to PATH, otherwise it does not. I don't know what will happen after a restart.

Rob
  • 21
  • 1