일단 내가 이짓거리를 하기 위해서 상당한 기간 머리를 쥐어 짰다는 것을 밝힌다.


내가 환경변수를 BAT 파일로 자동추가할 수 있는 방법을 찾기위해 참.... 뻘짓을 많이 했다

setx로 설정하는 방법이 있지만 중요한건 이렇게 접근했을때의 문제는 1024 문자수 제한이 있다는 크리티컬한 문제점이 있다

(잘못 설정하면 이전에 설정되어있던 PATH가 1024문자 이상일 경우 짤려서 사라진다 -.-허걱!

다행이 path를 따로 백업하지 않은이상 PATH의 일부분이 날라가 복구불가능할 수 있는 치명적인 문제점을 안고 있다)

또한 일반적인 환경변수 PATH를 그냥 가져다 대입해버리면 USER 부분과 MACHINE 부분의 PATH를 몽땅 합친 PATH를

가져오기 때문에 USER PATH와 MACHINE PATH를 분별해서 관리 할 수 있는 방법이 필요하다.


그래서 우리가 CMD환경에서 PATH를 완전하게 관리하기 위해서는

PowerShell이 필요하다


1. cmd를 실행하고 powershell 명령을 실행한다

2. $uPath = [Environment]::GetEnvironmentVariable("PATH", "USER") // 이 명령어는 파워쉘에서 USER부분의 PATH만 가져와 uPath 변수에 대입한다.

3. [Environment]::SetEnvironmentVariable("PATH", $uPath + "추가할 패스경로", "USER")


명령어가 좀 복잡하긴 하다 그래서 이보다 더 단순한 명령어로 USER PATH를 가져오고 패스를 추가할 수 있는 방법을 알고 있는분이 있다면 댓글을 부탁한다.

자 이 내용만 있으면 이걸 BAT파일로 작성해서 자동화시키는건 누워서 떡먹기다


Ps. 윈8.1을 사용하는 사람들은 UAC를 완전하게 해제해야 CMD에서 환경변수 변경이 가능하다

관리자 권한으로 CMD나 PowerShell을 사용할 수도 있겠지만 이 경우에는

자신의 계정의 환경변수를 접근하지 않는다 이런 문제점이 있는 관계로

UAC를 완전해제 해버려야 하는데 그러기 위해서는 Registry로 UAC해제를

해야한다 구글에서 쉽게 방법을 찾을 수 있으니 참고 바란다.


참고로 echo $uPath와 echo $Env:Path 명령어로 재차 확인해보기 바란다 무엇이 다른지