명령: SET : SETX :: %ABC% : ??? -- SET로 변경한 후 "전역"/"원래" ENV 얻기

명령: SET : SETX :: %ABC% : ??? -- SET로 변경한 후 "전역"/"원래" ENV 얻기

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

관련 정보