명령 프롬프트-해당 배치 파일이 실행되도록 설정된 경로를 추가하는 방법은 무엇입니까?


187

기본적으로 제어판을 통해 경로 변수를 수정할 수 있다는 것을 알고 있습니다. 그러나 배치 프로그래밍을 통해 임시 경로를 포함하는 방법이 있는지 궁금합니다. 그렇게하면 해당 배치 파일 실행 중에 만 사용됩니다. 배치 파일을 사용하기 위해 사람들이 들어가서 경로 변수를 수정하고 싶지는 않습니다.

답변:


318

다른 환경 변수와 마찬가지로 SET:

SET PATH=%PATH%;c:\whatever\else

안전성 검사를 먼저 구축하려면 새 경로가 먼저 존재하는지 확인하십시오.

IF EXIST c:\whatever\else SET PATH=%PATH%;c:\whatever\else

해당 배치 파일에 로컬로 저장하려면 setlocal다음을 사용하십시오 .

setlocal
set PATH=...
set OTHERTHING=...

@REM Rest of your script

setlocal/ endlocal에 대한 문서를주의 깊게 읽고 해당 사이트의 다른 참조를 살펴보십시오. 함수 도 매우 흥미롭고 구문은 까다 롭습니다.

구문 페이지는 기본 시작한다.


3
setlocal배치 파일 에 a 를 추가 하면 경로는 파일에서만 볼 수 있습니다.
jeb

hw "setlocal"을 추가합니까? "SET"대신에 있습니까?
마이클

@ Micheal : 링크로 답변을 업데이트했습니다. cmd 스크립팅에 대한 일부 문서 / 예 / 자습서를 읽으십시오-스크립팅 SET을 수행하기 전에 알아야 할 사항입니다.
Mat

2
생명의 은인. 다시 시작할 수없는 서버에 EV를 추가해야했기 때문에 다시 시작을 예약하지 않고도 필요한 작업을 수행 할 수 있습니다!
dav_i

8
그것이 없으면 SETLOCAL, 개별 명령 프롬프트 세션을 위해서만 가능합니다. 하나 이상의 배치 파일 에서이 작업을 수행하고을 사용 EXIT /B %N%하면 SETLOCAL기본적으로 스크립트가 종료 될 때 변경 사항을 덤프합니다. :-/
BrainSlugs83

21

중요한 세부 사항이 있습니다.

set PATH="C:\linutils;C:\wingit\bin;%PATH%"

작동하지 않는 동안

set PATH=C:\linutils;C:\wingit\bin;%PATH%

공장. 차이점은 따옴표입니다!

UPD는 또한 venimus의 코멘트를 참조하십시오


3
실제로 SET "PATH=...%PATH%"경로에 존재하는 공간이 있으면 오류나 오작동이 발생합니다. 이와 같이 따옴표로 묶으면 포함되지 않지만 변수를 올바르게 설정합니다. 다른 env 변수에서도 동일하게 작동합니다.
venimus

20

맞습니다. 그러나 영구적으로 변경되지는 않지만 현재 명령 프롬프트에서만 영구적으로 변경하려면 다음과 같이 사용해야합니다.

setx ENV_VAR_NAME "DESIRED_PATH" /m

이것은 영구적으로 변경되며 다른 배치 스크립트로 덮어 쓸 수 있습니다.


어쩌면 /m후에 setx해야합니까?
suzanshakya

나에게도 동일하게 작동하지만이 Win Batch Scripting은 MS의 완성되지 않은 비즈니스입니다. 동일한 시스템을 가진 동일한 랩톱을 모두 보유하고있는 회사에는 PATH 설정을위한 범용 스크립트가 없으며 2 개 또는 3 개를 유지 관리하므로 모든 것이 당신에게 효과적입니다 :)
dumbak

업데이트 해 주셔서 감사합니다. Windows Server 2012에서는 /m마지막에 DESIRED_PATH/ m을 추가하여 현재 사용자에게만 추가했습니다.
suzanshakya

11
주의의 말. 경로에서 setx를 사용하여 더 추가하려고 시도하고 문자열 길이가 1024보다 길면 결과 (내 환경 PATH)가 영구적으로 잘립니다. (변경 전에 ECHOed 한 % PATH %를 복사하고 환경 변수 창 도구를 사용하여 다시 넣을 수있는 좋은 방법입니다.
Andreas Jansson

주의! 이 명령은 시스템 환경 변수를 직접 덮어 씁니다! 나는 그것들을 삭제하고 고치려고 노력했다. 또한이 실수를 한 사람은 컴퓨터를 다시 시작하지 마십시오. 쓰면 echo %path%현재로드 된 경로를 얻게됩니다. 사용자 및 시스템 환경 변수를 서로 구별해야합니다. 그런 다음 올바른 위치에 수동으로 적용 할 수 있습니다.
Alper
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.