在 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 中,该表达式里的空格并不是同一种错误。程序本身仍然必须支持所提供的变量和代理协议。

相关文章