Windows CMD 환경 변수를 사용하는 방법
게시 됨: 2022-06-28명령 프롬프트(CMD)를 사용하여 환경 변수를 추가하거나 수정하는 것은 쉽지만 제거하는 것은 훨씬 더 복잡합니다. 다음은 이를 수행할 수 있는 몇 가지 다른 방법입니다.
환경 변수를 추가하거나 수정하는 방법
일시적으로 환경 변수 설정
영구적으로 환경 변수 설정
환경 변수를 제거하는 방법
일시적으로 환경 변수 제거
영구적으로 환경 변수 제거
환경 변수를 추가하거나 수정하는 방법
먼저 명령 프롬프트(CMD)를 관리자로 실행해야 합니다. 시작을 클릭하고 검색 상자에 "cmd"를 입력한 다음 "관리자 권한으로 실행"을 클릭합니다.
참고: 모든 사용자 환경 변수는 일반 명령 프롬프트 창에서 설정하거나 수정할 수 있지만 시스템 전체 환경 변수를 변경하려면 상승된 명령 프롬프트가 필요합니다.
환경 변수를 설정하는 두 가지 방법이 있습니다.
일시적으로 환경 변수 설정
첫 번째는 set 명령을 사용합니다. Set은 환경 변수가 정의된 프로세스 내에서만 환경 변수를 정의합니다. 즉, 해당 변수는 열려 있는 창이나 이를 포함하는 스크립트에서만 작동합니다.
예를 들면 다음과 같습니다. LifeAnswerVar라는 환경 변수를 만들고 값을 42로 설정하려고 한다고 가정해 보겠습니다. 명령은 set LifeAnswerVar=42
됩니다.
해당 창이 열려 있는 동안 LifeAnswerVar의 값은 42입니다.
닫히면 환경 변수와 해당 값이 삭제됩니다.
기존 Windows 시스템 변수를 임시로 수정하려는 경우에도 똑같은 방법이 작동합니다. LifeAnswerVar 대신 변경하려는 시스템 변수를 대체하고 42 대신 할당하려는 값을 대체하기만 하면 됩니다.
예를 들어, TMP 폴더를 C:\Example Folder로 이동하려면 set TMP=C:\"Example Folder"
명령을 입력합니다.
첫 번째 set TMP
는 TMP의 현재 값을 보여줍니다. 두 번째 줄은 TMP에 새 값을 할당합니다. 세 번째 줄은 변경되었음을 확인합니다.
영구적으로 환경 변수 설정
두 번째 방법은 setx를 사용합니다. Setx는 Windows 환경 변수를 영구적으로 정의합니다. 창 사이와 다시 시작 사이에 지속되며 Windows 레지스트리에 기록됩니다. 이러한 환경 변수는 특정 사용자에 대해 정의하거나 시스템 전체에서 사용하도록 정의할 수 있습니다.
setx ExVar1 Tomato /m
명령은 ExVar1이라는 새 환경 변수를 만들고 "Tomato" 값을 할당합니다. /m 인수는 새 변수가 현재 사용자뿐만 아니라 시스템 전체에 적용되어야 함을 지정합니다.
동일한 명령을 사용하여 기존 환경 변수를 수정하고 변경하려는 변수의 이름을 ExVar1로 대체합니다.
참고: setx를 사용하여 변수를 수정하고 변수 값을 보도록 설정하면 새 명령 프롬프트 창이 열릴 때까지 set이 올바른 값을 표시하지 않습니다.
사용자 환경 변수를 추가하거나 수정하려면 명령에서 /m 인수를 생략하면 됩니다.
환경 변수를 제거하는 방법
환경 변수를 제거하는 것은 추가하거나 수정하는 것보다 약간 어렵습니다.
참고: 변수를 추가할 때와 마찬가지로 일반 명령 프롬프트 창에서 모든 사용자 환경 변수를 삭제할 수 있지만 시스템 전체 환경 변수를 삭제하려면 상승된 명령 프롬프트가 필요합니다.
일시적으로 환경 변수 제거
스크립트, PowerShell 창 또는 명령 프롬프트 창과 같은 현재 프로세스에 대한 환경 변수를 일시적으로 제거하려는 경우 set 명령을 사용할 수 있습니다. 변수에 값을 할당하지 않기만 하면 됩니다.
예를 들어, 시스템 전체 환경 변수에 ExVar1=Tomato
라는 변수 정의가 있지만 특정 프로세스에 대해 이를 무시하고 싶다면 어떻게 해야 할까요? 명령 프롬프트에 set ExVar1=
을 입력하거나 스크립트에 해당 행을 포함할 수 있습니다. 스크립트가 실행되는 동안 또는 새 명령 프롬프트 창을 열 때까지 변수는 아무것도 설정되지 않습니다.
영구적으로 환경 변수 제거
환경 변수를 영구적으로 제거하는 것은 조금 더 복잡합니다. 이를 수행하려면 reg
를 사용해야 합니다.
경고: Reg는 레지스트리 편집기의 명령줄 버전입니다. 주의해서 진행해야 합니다. 오타가 있으면 실수로 중요한 항목을 삭제할 수 있습니다. 편집 중인 레지스트리 부분을 백업하는 것도 나쁘지 않습니다.
개별 사용자에 대한 환경 변수는 HKEY_CURRENT_USER\Environment
에 저장됩니다. 시스템 전체 환경 변수는 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
다른 곳에 저장됩니다.
ExVar1=Tomato
예제를 사용하겠습니다. ExVar1 환경 변수는 시스템 전반에 걸쳐 정의되었습니다. 즉, HKEY_CURRENT_USER 디렉터리가 아닌 HKEY_LOCAL_MACHINE 디렉터리에 있습니다. 특히 하위 키의 경로는 다음과 같습니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ExVar1
참고: 이 경로에는 공백이 있습니다. 명령줄 인터페이스에 입력된 경로에 공백이 있을 때마다 경로 주위에 따옴표를 사용해야 합니다. 그렇지 않으면 올바르게 실행되지 않을 가능성이 매우 높습니다.
이제 reg delete
명령을 사용하여 제거해야 합니다. 아래 명령에서 ExVar1에 대한 변수 이름을 대체해야 합니다.
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\" /f /v ExVar1
많이 있으므로 조금 나누어 보겠습니다.
- reg delete — 우리가 사용하는 애플리케이션(reg)과 명령(delete)을 정의합니다.
-
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\"
— reg 삭제에 키를 찾을 위치를 알려줍니다. - /f — 확인 메시지 없이 키를 삭제하도록 reg delete에 지시합니다.
- /v — 삭제할 특정 하위 키가 제공될 것임을 reg delete에 알립니다.
- ExVar1 — 삭제하려는 하위 키의 이름
개별 사용자에 대한 환경 변수를 삭제하는 것은 경로가 다르다는 점을 제외하고는 시스템 전체 변수를 삭제하는 것과 정확히 동일합니다. ExVar1이 사용자 환경 변수인 경우 삭제 명령은 다음과 같습니다.
reg delete HKEY_CURRENT_USER\Environment /f /v ExVar1
환경 변수를 삭제하는 명령이 성공하면 명령 프롬프트에 "작업이 성공적으로 완료되었습니다."가 표시되어야 합니다.
이와 같은 환경 변수를 제거할 때마다 explorer.exe를 다시 시작해야 합니다. Explorer.exe를 수동으로 다시 시작하거나 전체 컴퓨터를 다시 시작할 수 있습니다. 둘 중 하나가 작동하며 변경 사항은 재시작 직후에 적용됩니다.