2009-07-21 8 views
8

수동으로 PATH 환경 변수를 설정하는 데 어려움을 겪고 있습니다. 자동으로이를 수행 할 방법을 찾고 있습니다. 배치 파일을 사용하는 것이 바람직 할 것입니다. 왜냐하면 배치 파일은 스스로 실행해야하므로 (수행중인 작업에 대한 경고와 함께) setup.py에 대한 추가도 허용됩니다.배치 또는 Python을 통해 사용자의 % PATH % 환경 변수를 영구적으로 변경하십시오.

기타 정보 : SET은 현재 및 파생 쉘에만 영향을줍니다. 영구적 인 가치는 어디 선가 레지스트리에 저장되어있는 것처럼 보입니다. 이 website에서

답변

5

David가 말했듯이 Windows Resource Kit에서 얻을 수있는 SETX 도구가 있습니다.

그러나 SETX에는 때로는 문제가 발생하는 것으로 나타났습니다. 문제가 무엇인지 정확히 알아 내지 못했지만 크기 문제라고 생각합니다 (예를 들어, 변수를 내 케이스에 넣으 려한다면 PATH - 너무 큰 값, 예를 들어 1024 이상). 문자).

동일한 작업을 수행 할 수있는 두 개의 실행 파일이 있습니다. 특히 내가 가장 좋아하는 것은 CodeProject에서 Jonathan "Darka"Wilkes가 작성한 SetEnv입니다. 그는 기능이 뛰어나고 유용하게 만들었으며 모든 Windows 시스템과 호환됩니다. 몇 가지 기능을 제안했습니다. :)

또 다른 옵션은 수동으로 수행하는 것입니다. 실제로 레지스트리에 항목을 추가 한 다음 WM_SETTINGCHANGE을 최상위 창에 브로드 캐스트하거나 셸을 다시 시작하거나 다시 부팅하면됩니다. . 그러나 BATCH 파일의 SetEnv가 최선의 방법이라고 생각합니다. ;)

+0

아직도 SetEnv를 설치해야하지만, 비교적 힘들지 않습니다. 이것은 내가하는 길을 찾고 있습니다. –

+0

그럼 SetEnv를 설치하지 않아도됩니다. 설정을 수행하는 BATCH 파일과 동일한 디렉토리에 실행 파일을 넣을 수 있습니다. – Synetech

+0

나는 마침내이 일을했다. 와인에 SetEnv를 설치하고 실행 파일을 꺼내 내 프로그램 디렉토리에 던져 버리고 배치 파일을 써서 모든 것을 그레이비로 만들었습니다. –

2

:

그것은 표준 Windows XP 설치의 일부하지만 라는 setx.exe는 명령 줄 도구가 아닙니다 추가 도구 Setx.exe

사용 Windows XP 서비스 팩 2 지원 도구에 포함되어 있습니다. 이 도구는 명령을 확장하여 의 영구적 인 변경을 수행 할 수 있습니다. 예를 들어 은 폴더 C를 추가합니다 : 경로에 새로운 폴더, 명령이 는 당신이하고자하는지 위해 일 것 같은이 소리

setx path "%PATH%;C:\New Folder" 

것 \.

5

그래서 수동으로 PATH를 설정하는 데 어려움을 겪어 왔기 때문에이 작업을 자동으로 수행 할 수있는 방법을 찾고 있습니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths (뿐만 아니라 HKEY_CURRENT_USER\...) 레지스트리 키를 사용하면 실행 파일 이름에 응용 프로그램 특정 경로을 첨부 할 수 있습니다. 지정된 이름의 실행 파일이 시작될 때마다

응용 프로그램 특정 경로는 실행의 PATH 환경 변수에 추가됩니다.

2

방금이 질문을 건너 뛰고 사용할 수있는 옵션이 마음에 들지 않아 직접 솔루션을 작성하기로 결정했습니다.

(SetEnv는 좋았지 만 비 libre 라이선스가 마음에 들지 않았고 항상 하위 프로세스를 호출 할 필요가 없었습니다 ... SetEnv를 하위 프로세스로 호출해도 괜찮습니다. Wikipedia에서 사용하는 라이센스는 일종의 "do not evil"조항이 있고 그 종류의 합법적 인 모호한 제한이 항상 제 시간에 맞춰 시한 폭탄이라고 생각하기 때문에 비 자유형입니다.

약간 작음 MIT-licensed Python class 직접 레지스트리를 수정하고 WM_SETTINGCHANGE를 보내는 작업을 감추고 있습니다. (setup.py에서 사용하기 좋습니다)

관련 문제