다시 시작하지 않고 환경 변수를 cmd에서 업데이트하지 않는 이유는 무엇입니까? : %SOMEVARIABLE%

CMD 명령 :

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

에 대한 예상 출력 ECHO %SOMEVARIABLE%:

newpath;newpath2

실제 출력 :

%SOMEVARIABLE%

저장된 실제 값 (시스템 특성 – & gt; 환경 변수 GUI에서) :

%SOMEVARIABLE%;newpath2

내가 예상 출력을 얻을 수있는 유일한 방법은 환경 변수를 수정할 때마다 명령 프롬프트를 다시 시작하는 것입니다.
동일한 프로세스 동안 여러 번 추가하는 환경 변수 값을 자동화하려면이 명령을 사용하고 있습니다.

  1. 다시 시작하지 않고 환경 변수를 cmd에서 업데이트하지 않는 이유는 무엇입니까?
  2. 업데이트되지 않은 % SOMEVARIABLE %의 업데이트 된 값을 가져올 수 있습니까?
    명령 프롬프트를 다시 시작 하시겠습니까?


답변

문제는 setx 수정하다 지구 환경 , 지역 환경이 아닙니다. 따라서 변경 사항을 적용하려면 명령 프롬프트를 다시 시작해야합니다.

두 가지 옵션이 있습니다.

  • 지구 환경을 변화시키는 다른 도구를 사용하십시오. 지역 환경
  • 두 가지 작업을 수행하고이를 사용하는 배치 파일을 만듭니다.

    ::setenv.bat
    @echo off
    set %1=%2
    setx %1 %2 %3