2013-09-05 2 views
0

시스템 속성 환경 변수에 이상한 문제가 발생했습니다. 아시다시피시스템 속성에서 Windows OS 환경 변수를 얻는 방법

, 우리는 Computer->Property->Advanced System Settings->Advanced->System Environment Variables->User Variables for admin

내가 C에 변수 TEMP '값을 변경할 열 수 있습니다 mytemp \를 \하고 저장하기 위해 확인을 클릭합니다.

그러나 명령 줄에서 %TEMP%을 반향 시키면 원래 경로 인 C:\Users\admin\AppData\Local\Temp이 표시됩니다. 탐색기에서 I 입력 % temp %를, 그것은 C로 이동합니다 때

: 지금은, GetEnvironmentVariable()도에서 에코 % 임시 %와 동일 경로를 반환 경로를 얻기 위해 사용자 API 원하는 mytemp

을 \ 명령 행. 어떻게 착취 자로서의 길을 얻을 수 있습니까? 미리 감사드립니다.

추신. OS가 Win7 x86

+0

예. 명령 줄을 다시 시작하면 새 경로가 표시됩니다. 하지만 API GetEnvironmentVariable을 사용하면 왜 새 경로를 새로 고치지 않고 기존 경로를 가져오고 프로세스를 다시 시작해야합니다. –

+0

방금 ​​프로그램을 다시 실행하는 대신 IDE를 다시 시작해 보셨습니까? –

+0

IDE? 당신은 VC 컴파일러를 의미합니까? PC1에서 프로그램을 컴파일하고 PC2에서 프로그램을 실행합니다. –

답변

0

컴퓨터 -> 등록 정보 -> 고급 시스템 설정 -> 고급 -> 시스템 환경 변수 -> 사용자 변수를 통해 환경 경로를 변경하면 즉시 적용됩니다. 그러나 실행중인 프로그램은 최신 환경 변수를 얻지 못합니다.

그래서 나는 반향에 대해 새 cmd를 다시 열지 않았다고 생각했습니다.

새 cmd를 열고 다시 에코하면 새 경로가 표시됩니다.

0

환경 변수는 프로세스가 실행될 때 설정되며 업데이트되지 않습니다.

이를 확인하려면 명령 프롬프트를 열고 "echo % TEMP %"를 입력하십시오. 명령 프롬프트를 열어두고 % TEMP % 변수를 변경하십시오. 무슨 일이 있어도 "echo % TEMP %"를 입력하면 이전 값이 인쇄됩니다.

이제 새 명령 프롬프트를 열고 "echo % TEMP %"를 실행하면 새 명령 프롬프트가 새 값을 인쇄합니다.

임시 해결 방법으로 새 ​​스레드를 회전하여 해당 특정 시간에 현재 설정을 확인할 수 있습니다.

관련 문제