내 PATH 변경 사항이 인식되지 않는 이유는 무엇입니까?


36

내장 환경 변수 대화 상자 또는 경로 편집기 와 같은 것을 사용하여 PATH를 업데이트 한 다음 명령 프롬프트를 열면 명령 프롬프트가 있던 위치에 따라 PATH의 변경 사항이 콘솔에 등록되지 않습니다 부터 시작했다.

예를 들어, PATH를 편집 한 다음 시작 메뉴 또는 바탕 화면의 바로 가기에서 cmd.exe를 시작하면 PATH가 제대로 표시됩니다. 성공적으로 업데이트 된 것입니다. 난 아무데도 바로 가기에서 cmd.exe를 시작하는 경우에는 다른 시작 메뉴 또는 데스크탑보다 새로운 PATH 읽기되지 않고 내가 대신 이전 경로를 얻을. 매우 이상합니다.

바탕 화면의 바로 가기에서 명령 프롬프트를 실행하려고 시도했지만 정상적으로 작동합니다. 그런 다음 바탕 화면의 하위 폴더에 동일한 바로 가기 를 복사하면 업데이트되지 않는 PATH 문제가 발생합니다.

나는 이것이 설명하기가 어렵다는 것을 알고 있으므로이 문제를 실제로 보여주는 스크린 캐스트를 만들었습니다 .

해당 스크린 캐스트에서 볼 수있는 명령 프롬프트 바로 가기의 스크린 샷은 다음과 같습니다.

명령 프롬프트 바로 가기 설정

Windows Vista Home Premium SP2에 있습니다.

답변:


30

새 명령 줄과 같은 새 프로세스를 시작하면 프로세스를 시작하는 프로세스에서 환경 변수가 선택됩니다. 경로가 업데이트되면 업데이트를 수행하는 프로세스 만 해당 경로가 변경되었음을 알 수 있으며 다시 로그온 (사용자 별 설정)하거나 재부팅 (시스템 전체 설정) 할 때까지 설정이 전파되지 않습니다.


2
그러나 기본 explorer프로세스는 레지스트리 (대화 상자가 속한 rundll32) 의 환경 변경을 감지 하고 자체 환경을 자동으로 업데이트합니다. (적어도 XP에서는 그렇게합니다.) cmd바로 가기에서 시작할 때 변경 사항이 표시되는 이유 입니다.
grawity

Rowland, 이것은 내 질문에 완전히 대답하지는 않았지만 왜 이런 일이 발생했는지 정확하게 해결할 수있는 충분한 정보를 제공했습니다. 자세한 내용은 내 답변을 참조하십시오. 감사!
Charles Roper

이 답변에 감사드립니다! 명령 프롬프트를 닫았다가 다시 열면됩니다.
user1477388

이것은 나를위한 해결책이었습니다! 멀티탭 래퍼 (ConEmu)에서 Windows 용 Git Bash를 사용하고 있는데 왜 echo $PATH작동하지 않는지 궁금 했습니다. 나는 그것이 신선하다고 가정했지만 모든 Git Bash 탭과 ConEmu를 닫을 때까지 올바르게 나오지 않았습니다.
Oliv Utilo

27

Rowland가 제안한 것처럼 새 프로세스를 시작할 때 프로세스를 시작하는 프로세스에서 환경 변수를 읽습니다. 따라서 시작 메뉴 또는 바탕 화면explorer.exe 에서 명령 프롬프트를 시작할 때 레지스트리에서 환경 설정의 변경 사항을 감지 하는 환경 변수를 읽으 므로 명령 프롬프트에서 새 PATH가 시작됩니다. 데스크탑 또는 시작 메뉴.

내가 게시 한 스크린 캐스트에서 PATH 업데이트가 표시되지 않는 이유 는 부모 프로세스를 만드는 FARR 을 사용하여 탐색기 창을 처음 시작했기 때문 FindAndRunRobot.exe입니다. FARR은 환경 변경을 자동으로 감지하지 않으므로 생성 된 하위 프로세스는 새 PATH를 선택하지 않습니다. 또한 탐색기에 ' 별도의 프로세스로 폴더 창 시작 '옵션이 설정되어 있는데, 이는 FARR의 하위 항목 인 FARR에 의해 열린 초기 창에 이어 열린 모든 explorer.exe 창 입니다.

' 별도의 프로세스에서 폴더 창 시작 '옵션을 끄면 explorer.exeFARR에서 새 프로세스가 생성되지 않으므로 문제가 해결됩니다. 그러나 FARR에서 직접 콘솔 창 및 기타 항목을 시작합니다. 이것들은 또한 오래된 환경 설정을 얻습니다. FARR을 다시 시작하면 새 환경 설정이 전파됩니다.

다음은 FARR에서 생성 된 프로세스를 보여주는 Process Explorer의 스크린 샷입니다. explorer.exeFARR을 다시 시작하지 않으면 이러한 프로세스 중 어느 것도 최상위 수준에서 새로운 환경 설정을 받지 않습니다.

프로세스 탐색기


3
내 답변이 투표에 실패한 이유는 무엇입니까? 결함이 있으면 알려 주시면 해결하겠습니다.
Charles Roper

잘 이해하십시오.
lwpro2
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.