PowerShell通过 $PROFILE 函数式设置代理
在 Windows 开发环境里,经常会遇到一些命令行工具需要走代理的情况,比如 git、npm、scoop、curl 等。如果每次都手动输入环境变量,既麻烦又容易忘。
PowerShell 的 PROFILE 可以理解为启动配置文件,对应的内置变量是 $PROFILE。每次打开 PowerShell 时,它都会自动加载这个文件里的内容。因此,可以把常用函数写进 $PROFILE,以后只需要输入一个简单命令,就能快速开启、关闭或查看代理状态。
查看 PROFILE 路径
在 PowerShell 中执行:
1 | $PROFILE |
如果只是想确认文件是否已经存在,可以执行:
1 | Test-Path $PROFILE |
如果返回 False,说明当前还没有创建配置文件。
创建 PROFILE 文件
可以使用下面的命令创建:
1 | New-Item -Path $PROFILE -Type File -Force |
然后用编辑器打开它:
1 | notepad $PROFILE |
如果你使用 VS Code,也可以:
1 | code $PROFILE |
添加代理函数
把下面这段内容放进 $PROFILE 文件中:
1 | function proxy { |
这段配置提供了三个函数:
proxy:开启当前 PowerShell 会话的 HTTP/HTTPS 代理。unproxy:关闭当前 PowerShell 会话的代理。check-proxy:查看当前代理环境变量是否已经设置。
这里的代理地址是:
1 | http://127.0.0.1:7890 |
如果你的代理软件端口不是 7890,需要把代码里的端口改成自己的实际端口。
重新加载配置
保存 $PROFILE 文件后,可以关闭 PowerShell 再重新打开,也可以直接执行:
1 | . $PROFILE |
注意前面有一个点和空格,表示重新加载当前配置文件。
使用方法
开启代理:
1 | proxy |
查看代理状态:
1 | check-proxy |
关闭代理:
1 | unproxy |
常见问题
如果执行脚本时提示权限不足,可能是 PowerShell 执行策略限制。可以先查看当前策略:
1 | Get-ExecutionPolicy |
如果需要允许当前用户运行本地脚本,可以执行:
1 | Set-ExecutionPolicy RemoteSigned -Scope CurrentUser |
一般来说,设置到 CurrentUser 就足够了,不需要修改整个系统的策略。
小结
把代理配置写进 PowerShell $PROFILE 后,日常使用会轻松很多。需要代理时输入 proxy,不用时输入 unproxy,再用 check-proxy 检查状态,整个流程会比反复手动设置环境变量清爽得多。