.NET을 사용하여 Windows PATH 변수를 수정하고 싶습니다 setx
. 다음은 Windows 8에서 50 % 이상 작동합니다.
setx PATH %PATH%;C:\Python27\;C:\Python27\Scripts\
"기본 인수는 2 번만 사용할 수 있습니다."라는 오류 메시지가 표시되면 다음과 같은 경우가 있습니다.
setx PATH "%PATH%;C:\Python27\;C:\Python27\Scripts\"
차이점은 두 번째 인수를 따옴표로 묶었다는 것입니다. %PATH%
공백을 포함하도록 확장 할 때 따옴표가 필요하다고 생각합니다 .
그러나 Windows 7에서 이상한 문제가 발생했습니다. 특정 Windows 7 컴퓨터에서 다음과 같은 문제가 발생했습니다.
echo %PATH%
다음을 인쇄합니다.
C:\Foo\;C:\Bar\;[...lots of stuff...]C:\Baz\
그런 다음 이렇게합니다.
setx PATH "%PATH%;C:\Quux\"
그런 다음 "오류 : 1,024 자에서 잘림"이라고 표시됩니다. 이제 PATH에 포함 된 내용을 확인하겠습니다.
echo %PATH%
다음을 인쇄합니다.
C:\Foo\;C:\Foo\;C:\Bar\;C:\Bar\;[...lots of stuff, now duplicated...]C:\B
... 그리고 1,024 자로 잘립니다. 중복 때문에 달렸습니다. 또한 흥미로운 점 : setx
오류가 발생하고 "성공"이라고 말하지 않았 음에도 불구하고 PATH의 값이 변경 됩니다.
이 이상한 동작을 여러 번 반복 할 수있었습니다 (다행히도 PATH의 원래 내용을 저장했습니다).
현재 내가 아는 유일한 확실한 방법은 PATH에 추가하는 것입니다.
echo
경로.PATH의 내용을 텍스트 파일에 복사하고 수동으로
;C:\Python27\;C:\Python27\Scripts\
PATH 끝에 추가 합니다.텍스트 파일에서 모든 것을 복사하십시오.
setx PATH "<paste the string here>"
이 프로세스는 Windows 7과 Windows 8 모두에서 매번 작동합니다.
나는 이것을 하나의 명령으로 정말로 할 수 있어야한다. 내가 도대체 뭘 잘못하고있는 겁니까?
감사합니다.
setx
은 또 다른 이유로 위험합니다. 경로에 환경 변수 (예%JAVADIR%\bin
:)가 포함 된 경우 참조가 손실됩니다. 즉, JAVADIR이 변경되면 경로가 더 이상 변경되지 않습니다. 소프트웨어 설치 프로그램 인 경우 최종 사용자 시스템이 손상 될 수 있습니다. 좋은 생각이 아닙니다.