cmd.exe에서는 등호 주위에 공백 없이 할당을 작성합니다.

set "HTTP_PROXY=http://proxy.example:8080"

겉보기에 비슷한 이 명령은 다른 결과를 만듭니다.

set HTTP_PROXY = http://proxy.example:8080

이제 이름 끝에 공백이 있고 값은 공백으로 시작합니다. HTTP_PROXY 를 조회하는 애플리케이션은 HTTP_PROXY 를 요청하는 것이 아닙니다. 표시된 할당은 거의 맞아 보일 수 있지만 의도한 조회는 빈 채로 남습니다.

할당 전체를 따옴표로 묶으면 값 끝에 공백이 실수로 들어가는 것도 막을 수 있습니다. 값만 따옴표로 묶는 것은 다른 형식이며 저장된 값에 따옴표 문자가 남을 수 있습니다.

예제의 리스너를 서비스의 HTTP 엔드포인트나 HTTP 프록시 목록의 엔드포인트로 바꾸세요. 의도한 클라이언트를 해당 명령 창에서 실행해야 변수를 상속합니다. 이미 다른 곳에서 실행 중인 애플리케이션은 새 환경을 얻지 못합니다.

이것은 cmd.exe 구문입니다. PowerShell은 $env:HTTP_PROXY = 'http://proxy.example:8080' 같은 환경 변수 할당을 사용하며, PowerShell에서는 그 식의 공백이 같은 실수가 아닙니다. 그래도 프로그램이 지정된 변수와 프록시 프로토콜을 지원해야 합니다.

관련 글