사용자 별 환경 변수와 별도로 전역 환경 변수를 나열하는 방법은 무엇입니까?


13

Windows (예 : 버전 10)에서는 다음 명령을 사용하여 환경 변수를 나열 할 수 있습니다.

set

모든 사용자에 대해 동일한 환경 변수 또는 현재 사용자 또는 세션에 대한 환경 변수 만 어떻게 나열합니까?

답변:


17

상황이 때때로 Microsoft보다 약간 더 복잡합니다.

많은 환경 변수가 레지스트리에 저장됩니다. 즉, reg명령을 사용하여 쿼리 할 수 ​​있습니다.

모든 사용자에게 공통

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

현재 사용자 세션에만 해당

reg query HKCU\Environment
reg query "HKCU\Volatile Environment"

사용자가 설정

setx variable value명령을 사용하여 고유 한 환경 변수를 영구적으로 설정하면 해당 변수 는 레지스트리에 저장되지만 즉시 사용할 수는 없습니다.

C:\>setx test removeme

SUCCESS: Specified value was saved.

C:\>reg query "HKCU\Environment"

HKEY_CURRENT_USER\Environment
    Path    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Microsoft\WindowsApps;
    TEMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
    TMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
    test    REG_SZ    removeme

set variable=value명령 을 사용하면 변수를 즉시 사용할 수 있지만 레지스트리에는 저장되지 않습니다. reg로 표시되어 있지만 명령을 사용하여 나열 할 수는 없습니다 set. 이러한 임시 환경 변수는 명령 프롬프트 세션을 종료 한 후에도 지속되지 않습니다.

동적 환경 변수

이러한 방식으로 레지스트리에 저장되지 않은 환경 변수처럼 작동하는 구문이 있습니다. 예를 들면 다음과 같습니다.

echo %TIME%

1
단지 호기심 : 이전에 레지스트리에 추가 된 변수 를 새로 고칠 수 있습니까? 예 setx test removeme를 들어 set test %test%모든 변수를 간단한 set? 요청시 모든 것을 명시 적으로 만들기 위해 명령 / 배치 스크립트를 구현하는 것이 가능하다고 생각했습니다 ...
Hastur

@Hastur : 그렇습니다. 새로운 변수를 즉시 사용 가능하고 영구적으로 만들 수 있습니다.
RedGrittyBrick

@ hastur @RedGrittyBrick-가능하지만 확실히 Windows cmd의 oneliner는 아닙니다. chocolatey를 설치하면 refreshenv.cmd10 줄의 코드를 가진 유틸리티가 있으며 기본적으로 레지스트리 항목을 쿼리하고 새로 고침
maoizm

SET명령에 동적 환경 변수가 표시 됩니까 ? 세션 중에 Microsoft의 빌드 도구가 설정 한 모든 것을 찾으려고 노력하고 있습니다.
Ungeheuer

2

추가 라인과 공백이없는 깨끗한 출력을 위해 다음 명령을 사용하십시오 cmd.exe.

사용자 환경 변수 :

FOR /F "tokens=1,3* skip=2" %G IN ('reg query HKCU\Environment') DO @echo %G=%H %I

글로벌 (시스템) 환경 변수 :

FOR /F "tokens=1,3* skip=2" %G IN ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"') DO @echo %G=%H %I

Windows 7-10에서 작동하며 대부분 이전 버전에서도 작동합니다.


고마워 공백이 있으면 값의 일부를 삭제합니다. 따라서 같은 레지스트리 항목은으로 VS140COMNTOOLS REG_SZ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools 나타납니다 VS140COMNTOOLS=C:\Program.
금속

이 코너 사건을보고 해 주셔서 감사합니다. 공간에 대한 해결 방법을 찾으면 대답을 자유롭게 편집하십시오.-지금은 Windows 컴퓨터가 없습니다.
maoizm

1
그 효과에 대한 업데이트를 제출했습니다. 귀하 또는 일부 mod가이를 승인해야합니다.
금속

1

배치 명령을 입력하십시오 : echo % temp %

"temp"환경 변수에 "H : \ Users \ amacm \ AppData \ Local"이 포함되어 있으면 Windows는 즉시 다음과 같이 응답합니다.

H : \ 사용자 \ amacm \ AppData \ Local

"temp"라는 환경 변수가 없으면 Windows는 다음과 같이 응답합니다.

% temp %

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