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


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.