Windows 7에서 시스템 변수 PATH에 사용자 정의 환경 변수를 어떻게 추가합니까?


9

두 가지 사용자 정의 변수가 있습니다.

ANT_HOME을 % USERPROFILE % \ Developer \ Tools \ Apache \ Apache Ant \ apache-ant-1.8.2로 설정 JAVA_HOME을 C : \ Program Files \ Java \ jdk1.6.0_23으로 설정

그리고 bin 폴더의 실행 파일에 액세스 할 수 있도록 해당 경로를 시스템 변수에 추가하고 싶습니다. 나는 시도했다

PATH가 [다른 경로]로 설정되었습니다. % ANT_HOME % \ bin; % JAVA_HOME % \ bin

그러나 그것은 작동하지 않습니다. 명령 프롬프트를 열고 % PATH %를 반향 하면 사용자 변수가 확장되지 않습니다 . 따라서 경로에는 리터럴; % ANT_HOME % \ bin; % JAVA_HOME % \ bin이 표시됩니다.

이전 Windows XP 시스템에서이 기능이 제대로 작동하는 것 같습니다. Windows 7에서 어떻게 설정합니까?


Shell32.dll의 버그를 설명하는 2007 년부터 Microsoft 지원 문서를 찾았습니다. PATH가 % PATH %; % ANT_HOME % \ bin; % JAVA_HOME % \ bin으로 설정된 사용자 변수 목록에 PATH 변수를 추가하고 문제를 해결했습니다. 나는 단지 내 사용자를 위해 그것을 설정하는 것을 좋아하지 않지만 어떻게 든 내 시스템은이 오래된 버그의 증상을 보이고 있으며 아직 더 좋은 대답은 없습니다. 기사 : support.microsoft.com/kb/329308
Michael Prescott

답변:


5

업데이트 NO.2-이제 실제 질문 : 중첩 된 사용자 생성 변수가 확장되지 않는 이유는 무엇입니까?

Windows의 변수 확장과 관련하여 몇 가지 일반적인 문제가 있습니다. 나는 이미 같은 문제에 부딪 쳤고 명확하고 재현 가능한 상황을 발견하지 못했습니다. 확장에 실패하는 재귀 수준이 일정하지 않고 특수 문자가 역할을하지 않는 것처럼 보입니다.

내가 찾은 유일한 해결 방법은 재귀 수준으로 변수 재귀 수준을 추가하는 것입니다. 즉, PATH에서 사용자 정의 변수로의 호출을 포함하여 서로 중첩하려는 모든 변수를 삭제 한 다음 처음부터 시작하십시오. 기본 변수 (예 : ANT-HOME)를 정의하고 커밋하고 확장되었는지 확인하십시오. 확장 된 경우 다음 레벨 커밋으로 진행하십시오. 확인하십시오. 아이디어를 얻습니다.

업데이트 된 답변-CLI 및 GUI를 사용하여 영구 환경 변수 정의 - 원래 답변을 보려면 아래로 스크롤하십시오.

GUI 방법 :

Windows 7의 경우 META 프롬프트에 "system"을 입력하면 "시스템 환경 변수 편집"항목이 표시됩니다. 거기에서 "환경 변수"를 클릭하십시오. 여기에서 시스템 변수 PATH (하단 목록)를 편집하거나 사용자 환경 변수에 새 PATH 변수를 추가 / 편집 할 수 있습니다.

명령 줄 방법 ​​:

환경 변수를 영구적으로 변경하려면 Windows 명령 행에서 SETX 명령을 사용해야합니다. 다른 버전의 Windows와 달리 Windows 7에는 기본적으로 제공됩니다. 구문은 SET과 크게 다르지만 강력합니다. SETX를 사용하면 변수를 엉망으로 만드는 것이 쉽습니다.

  • 기본적으로 사용자 변수 를 변경 합니다 . 시스템 PATH 변수와 함께 공존하는 PATH 사용자 환경 변수를 가질 수 있습니다. 아직 정의하지 않은 경우 다음을 입력하여 정의하십시오.SETX PATH yourpath

  • 시스템 변수 PATH에 값을 추가 할 수도 있습니다. 이렇게하려면 먼저 관리자 권한이있는 명령 행을 불러 와야합니다. 이렇게하려면 메타 (윈도우) 키를 입력 히트 cmd와 히트 CTRL+ SHIFT+를 ENTER하고 UAC 대화 상자를 확인합니다.

경로에 새 값을 추가하려면 이제 입력하십시오

setx path "%path%;yournewpath" /m

이 구문을 따르는 것이 중요합니다! % path %를 먼저 포함하지 않으면 기존의 모든 경로 값이 손실되고 새 경로로만 바뀝니다. 끝에있는 / m 스위치는 시스템 환경에서 변수를 설정합니다.

새 변수를 사용하려면 새 명령 줄을 가져와야합니다.

TechNet에는 SETX에 대한 전체 참조 도 있습니다 .

이전 답변 SET 명령은 현재 명령 행 세션 동안에 만 변수를 업데이트합니다.

변수에 값을 추가하는 올바른 구문은 'set [variable] = % [variable] %; [new value]`입니다.

등호 왼쪽에서 백분율 기호를 생략해야합니다!

출처 : Windows Server 용 TechNet 명령 줄 참조


1
매우 상세한 답변에 감사드립니다. 팀과 의사 소통하는 것이 더 쉽다고 생각하기 때문에 저는 항상 GUI 방법을 선호했습니다. 명확성을 위해 원래 게시물에서 겪고있는 문제를 강조했습니다. 사용자 변수는 Windows XP에서와 같이 Windows 7에서 확장되지 않습니다. 더 이상 작동하지 않거나 일반적인 동작을 차단할 수있는 보안 또는 기타 시스템 관리자 설정을 조사해야합니까?
Michael Prescott

"당신은 요점을 완전히
벗어났습니다

... 그리고 지금 실제 질문에 내 2 센트. 최신 답변 편집을 참조하십시오.
Tobias Plutat

1

2007 년에 거슬러 올라간 Microsoft 지원 문서 ( 번호 329308) 는이 문제의 원인 인 Shell32.dll의 버그에 대해 설명합니다. 해결책은 PATH사용자 변수 목록에 변수 를 추가하는 것입니다.

%ANT_HOME%\bin;%JAVA_HOME%\bin

이 문제를 해결했습니다. 나는 단지 내 사용자를 위해 그것을 설정하는 것을 좋아하지 않지만 어떻게 든 내 시스템은이 오래된 버그의 증상을 나타내며 아직 더 좋은 대답은 없습니다.

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