변수가 공백이 포함 된 경로로 확장 될 때 PATH 변수 내에서 환경 변수를 확장 할 때 명확한 문제가 있습니다.
"OUR_ROOT = c : \ MyRoot"와 같은 자체 시스템 수준 변수를 만든 다음 "PATH =; % OUR_ROOT % \ bin;"과 같은 시스템 PATH에서 사용했습니다. "PATH =; c : \ MyRoot \ bin;"으로 올바르게 확장됩니다. 지금까지 아무런 문제가 없습니다.
그러나 Windows 7 (32 비트)에서는 제품을 설치하고 다음과 같은 시스템 환경 변수를 만듭니다.
STUDIO_BIN=C:\program files\Company Name\Product Name 10.4\bin
그리고 시스템 PATH 변수에 추가했습니다.
PATH=<other path elements>;%STUDIO_BIN%;<more path elements>
그러나 CMD에 표시된 PATH 값에는 "% STUDIO_BIN %;"이 포함되어 있습니다. 확장 된 경로가 아닙니다. 내 컴퓨터> 속성> 고급> 환경 변수의 값은 확장되지 않은 상태로 유지되었습니다. 즉, 해당 디렉토리에서 DLL이 필요한 프로그램을 실행할 수 없습니다.
STUDIO_BIN을 내 컴퓨터> 속성> 고급 ...> 환경 변수를 통해) 공백이없는 이름으로 변경하면됩니다.
STUDIO_BIN=C:\ProductName\bin
그런 다음 CMD 창을 다시 시작하면 PATH는 다음과 같습니다.
PATH=<other path elements>;C:\ProductName\bin;<more path elements>
또 다른 해결책은 내 컴퓨터> 속성> 고급 ...> 환경 변수 대화 상자를 사용하여 PATH에서 사용중인 시스템 변수를 충분히 편집하는 것입니다. 문자를 추가하고 제거하여 '변경'을 한 다음 확인을 시도하고 새 CMD 프롬프트를 시작했으며 PATH가 올바르게 확장되지 않았습니다. 그런 다음 경로의 일부 를 삭제하려고 했습니다.
STUDIO_BIN=C:\Program Files\Company Name
( "Product Name 10.4"생략) 그리고 다음 CMD 프롬프트는 STUDIO_BIN이 올바르게 확장 된 PATH를 표시했습니다.
이상하게도, 돌아가서 "Product Name 10.4"를 STUDIO_BIN에 추가하면 (처음으로 그와 함께 뭉치기 시작하기 전에 있던 모든 공간 포함) PATH가 제대로 확장되었습니다.
분명히 내용이 충분히 변경되면 PATH 변수는 환경 변수 대화 상자에서 추가 처리를 거쳐 작동합니다. 제품의 설치 프로그램에서 변수를 추가했을 때 수행되지 않은 처리 (아마도 레지스트리에서 PATH를 직접 수정했을 수도 있음).
나는 이것이 XP에서도 문제라고 거의 긍정적입니다. 새로운 개발 시스템을 만들면서 Windows 7에서 다시 표면화되었습니다. 분명히 Microsoft에 의해 수정되지 않았습니다.
% ProgramFiles %와 같은 MS 정의 변수조차도 PATH에서 올바르게 확장되지 않습니다.
이 페이지 는 명령 줄 또는 배치 파일을 통해 PATH를 설정하는 경우 가능한 답변을 제공합니다. (SET 다음에 전체 명령을 따옴표로 묶으십시오.) 설치 한 제품이 환경 변수를 설정하는 데 사용한 설치 프로그램을 모르지만 공백으로 경로를 올바르게 확장하는 데 필요한 처리가 무엇인지 알 수 있습니다.
요약하자면 다음 중 하나를 수행 할 수 있습니다.