환경 변수 새로 고침


답변:


4

실제로 환경 변수 설정 방법에 따라 다릅니다. 예를 들어 명령 줄에서 "SET"명령을 사용한 경우 현재 인스턴스에만 영향을줍니다. 반면 "SETX"와 같은 명령은 환경 변수의 값을 영구적으로 조정합니다. SETX는 향후 모든 cmd 인스턴스에 업데이트가 표시되도록합니다. 로컬 환경에는 영향을 미치지 않습니다.

환경 변수가 다른 응용 프로그램에서 설정되어 있고 업데이트되지 않는 경우 "explorer.exe"프로세스를 다시 시작 하거나 로그 아웃했다가 다시 로그인하거나 재부팅 하는 것이 가장 쉬운 경우가 많습니다 . 기본적으로 탐색기에게 환경 변수를 다시로드하도록 지시하면됩니다. 설치 프로그램과 같이 개발 한 응용 프로그램 인 경우 호출 중인지 확인하십시오 SendMessage (HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Environment");. 이것은 탐색기에게 환경 변수의 캐시를 새로 고치도록 지시합니다.

다른 프로세스에서 시작한 응용 프로그램은 부모로부터 환경 변수를 상속하기 때문에 중요합니다. 따라서 탐색기에서 cmd를 시작하면 탐색기에서 볼 수 있듯이 변수가 표시됩니다.


1

Windows에서 마스터 환경을 설정하고 취소하는 것은 BartPE 직원들이 많은 시간을 소비 한 것입니다.

기본 환경은 레지스트리에 저장되지만 탐색기 쉘은이를 주소로 읽습니다. 여기에서 각 cmd.exe 세션으로 전송됩니다.

SET는 cmd 환경에만 영향을줍니다. SETX를 사용하면 마스터 환경을 변경할 수 있지만 설정은 로컬 환경에 반영되지 않습니다.

Frank Westlake의 CONSET 및 4NT는 레지스트리에서 항목을 가져올 수 있지만 특히 마스터 환경에 대한 스위치는 없습니다.

일반적으로로드 된 창은 레지스트리에 대한 설정을 추적하지만 최소 (예 : WinPE)를 통해로드 된 창은 그렇지 않습니다. 따라서 레지스트리 설정과 레지스트리 읽기는 둘 다에서 작동하지만 정상적으로 부팅 된 창에서만 설정을보고 새 cmd, exe 프로그램으로 전달합니다.


0

환경 변수를 "설정 한"위치에 따라 다릅니다. bash 예제와 동등한 내용은 다음과 같습니다.

파일 : env.bat

set FOO=bar

그리고 지금 당신은 그것을 새로 고칩니다

% call env.bat

그러나 나는 당신이 windows-system-settings-dialog (또는 그 이름이 무엇이든간에)를 통해 그것을했다고 생각합니다. 그 결과 실제로 레지스트리를 변경 한 것입니다. 이러한 레지스트리 설정은 새 프로세스를 시작할 때 프로세스에 매핑됩니다.

따라서 새 프로세스 (경우에 따라 cmd.exe)를 시작하거나 원하는 변경 사항을 반영하는 레지스트리 키를 읽을 수 있습니다. 레지스트리에서 환경을 가져오고 현재 환경 조정을 변경하는 작은 .bat / .cmd 스크립트를 작성할 수도 있습니다 (분위기가 나에게 오면 점심 식사 후이 작업을 수행 할 것입니다).


0

이제 쉘을 다시 시작할 필요없이 훨씬 쉬워졌습니다.

  1. 시작 메뉴를 열고 RefreshEnv.bat
  2. 운영 RefreshEnv.bat

새로 추가 된 환경 변수가 모든 새 Command / Powershell 인스턴스에서 사용 가능한지 확인하여 새로 고침을 확인하십시오.


지금 무슨 소리 야? 어떤 버전부터? 그 박쥐 파일은 Windows에서 사용할 수 있습니까?
Máté Juhász
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.