Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

CMD commands:

setx SOMEVARIABLE "newpath" /M
setx SOMEVARIABLE "%SOMEVARIABLE%;newpath2" /M

Expected output on ECHO %SOMEVARIABLE%:

newpath;newpath2

Actual output:

%SOMEVARIABLE%

Actual value stored (From System Properties->Environment Variables GUI):

%SOMEVARIABLE%;newpath2

The only way i can get the expected output is, if i restart the command prompt every time i modify the environment variable. I'm using this command to automate environment variable value appending multiple times during the same process.

  1. Why doesn't environment variable get updated in cmd without restart?
  2. Is it possible to get the updated value of %SOMEVARIABLE% without restarting the command prompt?
share|improve this question
add comment

1 Answer

up vote 4 down vote accepted

The problem is that setx modifies the global environment, not the local environment. Therefore, you have to restart the command prompt to pick up the change.

You have two options:

  • Use a different tool that modifies the global environment and the local environment
  • Create a batch-file that does both and use that:

    ::setenv.bat
    @echo off
    set %1=%2
    setx %1 %2 %3
    
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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