一个 Windows 命令行小工具:用 px 为任意命令按需注入代理,不污染当前终端环境。
- 一条命令为
git、npm、curl等工具按需启用代理 px <proxy-url> <cmd>:首次传入代理 URL,自动持久化px <cmd>:之后无需重复输入 URL- 支持 PowerShell、cmd.exe、Git Bash
- 同时注入大小写代理变量,兼容主流工具
- Windows 10/11 x64
- 打开 GitHub Releases,下载
px.exe。 - 把它粘贴到任意目录,例如
D:\tools\px\px.exe。 - 在 PowerShell 中
cd到该目录,执行下面这一行:
[Environment]::SetEnvironmentVariable('Path', [Environment]::GetEnvironmentVariable('Path','User') + ';' + (Get-Location).Path, 'User')- 重新打开终端,验证:
px -v
px --help# 第一次:告诉 px 代理地址,并运行命令
px http://127.0.0.1:7897 curl.exe -I https://www.google.com
# 以后直接运行,不再重复输入代理地址
px git clone https://github.com/octocat/Hello-World.git
px npm installpx <proxy-url> <cmd> [args...] # 设置代理地址并运行命令
px <cmd> [args...] # 使用已保存的代理地址运行命令
px env # 输出 PowerShell 代理变量语句
px env --shell cmd # 输出 cmd.exe 代理变量语句
px env --shell bash # 输出 Git Bash 代理变量语句
px clear # 删除已保存的代理地址
px -v / px --version # 查看版本
px -h / px --help # 查看帮助
px 是子进程,不会修改你当前终端的设置。如果你想临时让整个终端窗口都走代理,可以用 px env:
Invoke-Expression (px env)
curl.exe -I https://www.google.com
# 不再需要时清理
Remove-Item Env:HTTP_PROXY, Env:http_proxy, Env:HTTPS_PROXY, Env:https_proxy, Env:ALL_PROXY, Env:all_proxy -ErrorAction SilentlyContinuecmd.exe:
for /f "delims=" %a in ('px env --shell cmd') do %aGit Bash:
eval "$(px env --shell bash)"px 会在子进程中设置:
HTTP_PROXY/http_proxyHTTPS_PROXY/https_proxyALL_PROXY/all_proxy
其他环境变量原样透传;NO_PROXY / no_proxy 不修改。
- 没有代理地址就运行
px npm install? 先运行px <proxy-url> <cmd>保存地址。 px提示找不到命令? 回到「安装」,确认px.exe所在目录已加入 User PATH,并重开终端。px clear后当前终端还在走代理?px clear只删除保存的地址,不清理当前终端;按上文清理六个Env:变量即可。- 子命令返回值:
px会透传子命令退出码,因此适合在脚本里作为普通命令使用。
- 开发与构建:
CONTRIBUTING.md - 设计规格:
docs/DESIGN.md