
SET
"일시적으로"을 설정/변경합니다 environment variable
.
변경된 셸/프로세스에서 "원본"/ "전역"/ "변경되지 않은" 항목을 어떻게 얻나요?
제목을 설명하자면:SET
내가 부르는 것에서 작동합니다.
로컬 범위그리고SETX
글로벌하나.
%ABC%
나에게 변수를 가져옵니다로컬 범위, 하지만 나는 그에게서 얻을 수 있는 것을 찾고 있어요.글로벌하나.
따라서 SET
: SETX
:: %ABC%
: ???
답변1
네트워크의 도메인에서 사용되는 용어와의 혼동을 피하기 위해 '로컬' 대신 '사용자별'이라고 말하고, '글로벌' 대신 '머신별'(모든 로컬 사용자용)이라고 말합니다.
'로컬'은 실제로 '이 컴퓨터에서만'을 의미하며 다음을 의미할 수 있습니다.모두로컬 사용자.
기계별 변수는 다음 위치에 저장됩니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
사용자별 변수는 다음 위치에 저장됩니다.
HKEY_CURRENT_USER\Environment
SETX는 사용자별 또는 컴퓨터별일 수 있습니다.
SET은 일시적입니다(CMD 세션 기간 동안). SETX는 영구적입니다(레지스트리에 저장됨).
SETX로 설정된 변수는 설정 당시 열려 있던 CMD 세션에서 사용할 수 없습니다. 새로운 CMD 세션에서 사용할 수 있습니다.
'컴퓨터별' 변수를 설정하려면 SETX와 함께 /M 옵션을 사용하세요.
데모 예시:
관리자로 다음을 입력하세요.
C:\WINDOWS\system32>setx apps %SystemDrive%\apps /m
SUCCESS: Specified value was saved.
그런 다음 관리자가 아닌 사용자로 다른 cmd 창을 엽니다.
C:\Users\jh>echo %apps%
C:\apps
"apps"는 컴퓨터 전체에 적용되지만 %apps%는 일반 사용자에 대한 값을 가져옵니다.
따라서 "%ABC%" 형식은 사용자 변수와 기계 변수를 모두 가져옵니다.
해당 변수를 지우려면 관리자로서 다음을 수행하십시오.setx apps "" /m