2016-11-03 2 views
-1

명령 프롬프트에서 만든 환경 변수를 참조하는 영구 환경 변수를 만들려고합니다. 이것은 내가 할 노력하고있어 보여줍니다사전 정의 된 환경 변수가 동적으로 작성된 환경 변수를 참조 할 수 있습니까?

Microsoft Windows [Version 6.1.7601] 
Copyright (c) 2009 Microsoft Corporation. All rights reserved. 

C:\Users\testuser>echo %HTTP_PROXY% 
http://%user%:[email protected]%proxyip%:8080 

C:\Users\testuser>set user=testuser 

C:\Users\testuser>set password=testpass 

C:\Users\testuser>set proxyip=10.20.10.100 

C:\Users\testuser>echo %HTTP_PROXY% 
http://%user%:[email protected]%proxyip%:8080 
내가

http://testuser:[email protected]:8080 

이 가능하게 할 수있는 방법이 있나요를 인쇄 할 최종 에코 문을 기다리고 있었다

?

+0

이 게시물은 어리석은 것처럼 보일 수 있습니다. 그러나이 게시물에 대한 이유는 Windows 환경 변수를 통해 암호를 게시하고 싶지 않고 명령 프롬프트에서이 변수를 정의하여 긴 URL 변수를 사용하려고하고 긴 변수를 기억하고 싶지 않기 때문입니다. – Chinmay

+0

Windows 명령 프롬프트가 DOS가 아닙니다. –

+0

환경 변수는 문자열입니다. 그들은 동적으로 평가되지 않습니다. –

답변

1

아니요, 불가능합니다. 환경 변수는 재귀 적으로 확장되지 않습니다.

배치 스크립트를 작성하여 HTTP_PROXY을 설정하면됩니다. set을 사용하여 사용자 이름, 암호 및 IP 주소를 저장하라는 메시지가 표시 될 수도 있습니다.

(. 오히려 하드 코딩 된 문자열을 사용하는 것보다, 어떤 이유로 환경에서 템플릿 문자열을 얻기 위해 배치 스크립트가 필요한 경우, this answer 그렇게하는 방법을 설명합니다)


각주 :

영구 환경 변수 을 참조하십시오. 일부 제한 사항이 있습니다. herehere을 참조하십시오.

그러나 프로세스가 실행되는 동안이 아니라 환경 블록이 새 프로세스 용으로 빌드 될 때만 발생합니다. (새로운 프로세스가 부모로부터 환경을 상속하는 경우에만 발생합니다.

+0

해리에게 제안을 주셔서 감사합니다. 현재 다른 배치 스크립트를 사용하여 동일한 결과를 얻고 있습니다. 실제로 확장해야하는 지점에서 환경 변수를 분할하고 런타임에 스크립트에 전달 된 매개 변수로 환경 변수를 연결했습니다. – Chinmay

관련 문제