Twisty Impersonator 가 답변 에서 말한 모든 것이 정확합니다. 사용자 경로 변수가 추가되었다는 아이디어가 강조 표시되었으며 그 차이로 인해 추가 처리가 필요하다고 생각합니다.
경로 = % 경로 (시스템); % 경로 % (사용자)
당신이 (같은 또는 실행 스크립트 실행 프로그램 실행하면 .bat
, .vbs
등) 정규화 된 경로를 제공 할 필요가 없습니다.
예를 들어을 실행 java
하려면 다음 중 하나를 입력하십시오.
C:/Program Files (x86)/Java/jre6/bin/java -version
java.exe -version
java -version
첫 번째 예는 완전한 경로를 사용합니다. 이것은 항상 정확한 경로에서 Java 버전을 사용합니다.
두 번째 예는 %Path%
환경 변수 의 각 디렉토리를 살펴보고 실행 파일 이름을 찾습니다 java.exe
. 발견 된 첫 번째 것을 실행하고 검색을 중지합니다. 에 java.exe
어딘가에 두 개의 파일이 있으면 %Path%
처음 찾은 파일 만 사용됩니다.
세 번째 예는 두 번째 예와 같이에 나열된 디렉토리를 반복합니다 %Path%
. 또한 파일 확장자가 제공되지 않았기 때문에 실행 파일 확장자 목록이 %PATHEXT%
환경 변수에 지정된 순서대로 파일 이름에 추가됩니다 . 이름이 여러 개의 파일이있는 경우 java.com
, java.exe
, java.bat
상의 등 어딘가에는 %Path%
, 첫 번째 하나의 FOUND가 사용됩니다.
다음 배치 파일을 작성하여 시스템에서 실행 파일 경로 확장자 목록을 볼 수 있습니다.
@echo off
echo %PATHEXT%
pause
내 컴퓨터에서는 다음과 같습니다.
.COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC; .PY
이 모든 것이 무엇을 의미합니까?
에서 대조적 다른 환경 변수, 사용자 경로는 시스템 경로를 재정의 할 수 없습니다. 정반대입니다. 위의 예에서 기본 버전의 Java를 변경해야 할 경우가 많습니다. 그러나 시스템 경로에 이미 Java 버전이 나열된 경우, 경로가 왼쪽에서 오른쪽으로 순서대로 검색되고 사용자 경로가 오른쪽에 추가되므로 항상 먼저 발견되는 버전입니다. 시스템 경로가 왼쪽에있는
어떻게해야합니까?
시스템 환경 변수에 액세스 할 수 없으면 사용자 경로를 사용하여 시스템 경로의 기본 프로그램을 대체 할 수 없습니다. (실제로 이런 방식 이어야합니다. 그렇지 않으면 특정 프로그램이 올바르게 작동하지 않고 시스템이 악성 소프트웨어에 의해 조작 될 수 있습니다. 아무도 원하지 않습니다.)
대신 특정 버전을 사용해야하는 경우 완전한 경로를 사용해야합니다.