programing

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

bestprogram 2023. 6. 1. 23:03

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

Windows 7(또는 XP)의 명령 프롬프트에서 시스템 수준의 환경 변수를 설정할 수 있습니까?고급 명령 프롬프트에서 실행 중입니다.

사용할 때set명령(set name=value), 환경 변수는 명령 프롬프트 세션에만 유효한 것 같습니다.

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(윈도우 7)에는 실제로setx표준 설치의 일부로.

JAVA_HOME을 설정하는 방법에 대한 간단한 예setx.exe명령줄에서:

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

현재 사용자에 대한 환경 변수 "JAVA_HOME"을 설정합니다.모든 사용자에 대해 변수를 설정하려면 "/m"(또는 -m, Windows 7 이전 버전) 옵션을 사용해야 합니다.

다음은 예입니다.

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

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

참고: 명령줄 관리 창에서 setx 명령을 실행해야 합니다.

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

다음 순서를 사용하여 설정 프로세스에서도 직접 설정합니다(글로벌 변수를 설정한 후 일부 init 작업을 수행하는 스크립트에서 완벽하게 작동).

SET XYZ=test
SETX XYZ test

XP의 경우 "RAPIDEE"(Rapid Environment Editor)라는 (무료/기부 소프트웨어) 도구를 사용했지만, Win 7에는 SETX가 확실히 충분합니다(이전에는 이에 대해 몰랐습니다).

시스템 변수는 CMD 및 레지스트리를 통해 설정할 수 있습니다. 를 들어 reg 쿼리 "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\"세션 관리자\환경" /vPATH

일반적으로 사용되는 모든 CMD 코드와 시스템 변수는 CMD를 사용하여 윈도우즈 시스템 환경 변수를 설정하십시오.

CMD를 열고 Set을 입력합니다.

시스템 변수의 모든 값을 얻을 수 있습니다.

set java를 입력하여 창 OS에 설치된 java의 경로 세부 정보를 확인합니다.

SetX는 대부분의 경우에 필요한 명령입니다.REG 또는 REGEDIT 사용이 가능하지만

레지스트리 편집 명령을 사용하면 SetX 명령의 일부 제한(다른 데이터 유형, 다음을 포함하는 변수)을 피할 수 있습니다.=그들의 이름 등으로

@echo off

:: requires admin elevated permissions
::setting system variable
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v MyVar /D MyVal
::expandable variable
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /T REG_EXPAND_SZ /v MyVar /D MyVal


:: does not require admin permissions
::setting user variable
REG ADD "HKEY_CURRENT_USER\Environment" /v =C: /D "C:\\test"

REG는 순수 레지스트리 클라이언트이지만 하드 코딩된 값(또는 임시 파일 생성)만 사용할 수 있지만 REGEDIT로 데이터를 가져올 수도 있습니다.데이터가 입니다(" "" "" "" " " " " " " " " " " "로 ..bat그것을 일괄적으로 주의하시오.;에서 주로사 무구기다 니됩시에서 구분 됩니다..reg파일):

REGEDIT4

; @ECHO OFF
; CLS
; REGEDIT.EXE /S "%~f0"
; EXIT

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
"SystemVariable"="GlobalValue"

[HKEY_CURRENT_USER\Environment]
"UserVariable"="SomeValue"

변수를 삭제해야 할 경우를 대비하여 Vincent Fatica의 SETENV를 http://barnyard.syr.edu/ ~vetatica에서 사용할 수 있습니다.정확히 최신은 아니지만('98') Windows 7 x 64에서 여전히 작동합니다.

언급URL : https://stackoverflow.com/questions/3803581/setting-a-system-environment-variable-from-a-windows-batch-file