我想创建一个持久的环境变量,它引用在命令提示符下创建的环境变量。这显示了我正在尝试做的事情:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\testuser>echo %HTTP_PROXY%
http://%user%:test@%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%:test@%proxyip%:8080
我期待打印最终的echo语句
http://testuser:testpass@10.20.10.100:8080
有没有办法让这成为可能?
答案 0 :(得分:1)
不,那是不可能的。环境变量不会递归扩展。
您可以做的是创建一个批处理脚本来为您设置HTTP_PROXY
。它甚至可以提示您输入用户名,密码和IP地址,以便使用set
保存您。
(如果您需要批处理脚本由于某种原因从环境中获取模板字符串,而不是使用硬编码字符串,this answer说明了如何执行此操作。)
脚注:
持久性环境变量可以引用其他持久性环境变量,但有一些限制。请参阅here和here。
但是,这仅在为新进程构建环境块时发生,而不是在进程运行时发生。 (如果新进程从其父进程继承其环境,只有在构建全新的环境块时才会发生这种情况。)