Windows 배치 파일에서 시스템 환경 변수를 설정 하시겠습니까?


195

Windows 7의 명령 프롬프트 (또는 그 문제에 대해서는 XP)에서 시스템 수준에서 환경 변수를 설정할 수 있습니까? 관리자 권한 명령 프롬프트에서 실행 중입니다.

내가 사용하는 경우 set명령을 ( set name=value), 환경 변수 프롬프트 명령 세션에 대해서만 유효 할 것으로 보인다.

답변:


179

XP 지원 도구 (XP CD에서 설치 가능)에는 setx.exe다음 과 같은 프로그램이 있습니다 .

C:\Program Files\Support Tools>setx /?

SETX: This program is used to set values in the environment
of the machine or currently logged on user using one of three modes.

1) Command Line Mode: setx variable value [-m]
   Optional Switches:
    -m  Set value in the Machine environment. Default is User.

...
For more information and example use: SETX -i

실제로 Windows 7 setx은 표준 설치의 일부로 제공됩니다 .


7
Windows 7 (Vista 이미)에 약간의 변경 사항이있는 setx 표준이 있습니까? 거기에 더없는 -i플래그는 그냥 실행 setx /?모든 도움 + 예제 표시
스테인

3
입력 where한 다음 프로그램 이름을 입력하여 경로에이 프로그램이 있는지 항상 확인할 수 있음을 기억하십시오 (이 경우 where setx.exeServer 2008 및 Server 2008SP2 상자에서 테스트하는 경우 두 경우 모두%windir%\System32\setx.exe
aolszowka

2
@stijn-Win7 버전은 공식적으로 플래그 도입기를 -슬래시로 변경했습니다 /. 그러나 -버전이 여전히 작동 하는 것처럼 보입니다 .
TED

2
setx 변수 콘텐츠에 대한 1024 길이 제한이있는 것 같습니다
zhy2002

XP SP2 지원 도구에서 제공하는 setx에는 슬래시가 필요 /하며 대시 -가 작동하지 않습니다. setx variable value /m
Keith

137

setx.exe명령 행에서 JAVA_HOME을 설정하는 간단한 예 :

setx JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

현재 사용자에 대한 환경 변수 "JAVA_HOME"이 설정됩니다. 모든 사용자에 대해 변수를 설정하려면 "-m"옵션을 사용해야합니다. 예를 들면 다음과 같습니다.

setx -m JAVA_HOME "C:\Program Files (x86)\Java\jdk1.7.0_04"

참고 :이 명령을 관리자 권한으로 실행해야합니다.

참고 : 명령 행 관리 창 에서 setx 명령을 실행하십시오


7
또한 일부 도구는 JAVA_HOME의 공백을 Progra~1좋아하지 않으므로 다음과 같이 사용하는 것이 setx /M JAVA_HOME "C:\Progra~1\Java\jdk1.7.0_09"
좋습니다

1
이것이 내 인생의 모든 곳입니다.
Philip Rego 2016 년

20

SETX를 통해 변수를 설정하면이 변수 또는 해당 변경 사항을 즉시 사용할 수 없습니다. 사용하려는 프로세스를 다시 시작해야합니다.

다음 순서를 사용하여 설정 프로세스에서 직접 설정하십시오 (전역 변수를 설정 한 후 초기화 작업을 수행하는 스크립트에서 완벽하게 작동합니다) .

SET XYZ=test
SETX XYZ test

고마워, 이건 날 미치게 했어! CMD.EXE는 정상적인 콘솔처럼 동작하기 위해 필사적으로 업그레이드가 필요합니다 ...!
살바도르 발렌시아

나는 이것을 얻지 못한다 : 나는이 두 줄을 어디에서 실행합니까?
Danijel

1
refreshenvsetx를 사용한 후 새 변수를 사용하여 명령 을 실행할 수도 있습니다 .
BrianHVB 19

@BrianHVB refreshenv가 명령으로 인식되지 않습니다. cmd또는 에서 이것을하고 powershell있습니까? (편집 : 실제로 테스트되었으며 두 콘솔 모두에서 작동하지 않습니다.)
bigp

@bigp 죄송합니다. chocolatey가 설치 될 때 추가되는 명령입니다. 나는 모든 시스템에 초콜릿을 먹었고 그것을 찾을 때까지 깨닫지 못했습니다.
BrianHVB

2

XP의 경우 "RAPIDEE"(Rapid Environment Editor)라는 (무료 / 도너웨어) 도구를 사용했지만 SETX는 Win 7에 충분합니다 (이전에 알지 못했습니다).


2

시스템 변수는 CMD와 레지스트리를 통해 설정할 수 있습니다. reg 쿼리 "HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment"/ v PATH

일반적으로 사용되는 모든 CMD 코드 및 시스템 변수는 다음과 같습니다. CMD를 사용하여 Windows 시스템 환경 변수를 설정 하십시오 .

CMD 열기 및 유형 설정

시스템 변수의 모든 값을 얻게됩니다.

윈도우 운영 체제에 설치된 Java의 경로 세부 정보를 보려면 set java 를 입력 하십시오.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.