Windows 一键代理开关脚本(proxy-on / proxy-off / proxy-status)
在 Windows 中开启 Clash 后浏览器能联网但终端却经常超时,本质原因是大多数开发工具只读取 HTTP_PROXY/HTTPS_PROXY 环境变量而不会使用系统代理。本文通过一个 PowerShell 脚本实现类似 Linux proxy-on / proxy-off 的一键开关,让 pip、git、npm、Python 等终端程序自动走代理。
目标: 像 Linux 一样在终端执行
proxy-on proxy-off proxy-status来控制全局代理(适用于 pip / git / curl / Python / Node 等)
一、脚本实现
1、查看端口号
首先打开你的Clash For Windows,查看你的端口号

2、创建脚本文件
这边建议新建个文件夹proxy专门存储本blog所需文件
创建文件proxy.ps1
这里建议使用vscode打开此文件,然后按ctrl+shift+p打开运行命令窗口,根据下图顺序操作



注:因为powershell的中文编码格式为GBK,所以正常的utf-8格式的中文在powershell里面输出会变成乱码
在proxy.ps1文件内输入以下代码(注意代理地址后面的端口号填写自己的端口号):
param(
[Parameter(Mandatory=$true)]
[ValidateSet("on","off","status")]
[string]$cmd
)
# 设置 PowerShell 输出为 UTF-8(避免 Unicode 乱码)
$OutputEncoding = [System.Text.UTF8Encoding]::new()
# 代理地址(根据你的 Clash 配置修改端口)
$proxy_url = "http://127.0.0.1:端口号"
# 默认 User 级
$target = [EnvironmentVariableTarget]::User
switch ($cmd) {
"on" {
[Environment]::SetEnvironmentVariable("HTTP_PROXY", $proxy_url, $target)
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", $proxy_url, $target)
Write-Host "[INFO] 全局代理已开启:$proxy_url"
Write-Host " 请重启终端或 VSCode 以生效。"
}
"off" {
[Environment]::SetEnvironmentVariable("HTTP_PROXY", $null, $target)
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", $null, $target)
Write-Host "[INFO] 全局代理已关闭"
Write-Host " 请重启终端或 VSCode 以生效。"
}
"status" {
$http = [Environment]::GetEnvironmentVariable("HTTP_PROXY", $target)
$https = [Environment]::GetEnvironmentVariable("HTTPS_PROXY", $target)
if ([string]::IsNullOrEmpty($http) -and [string]::IsNullOrEmpty($https)) {
Write-Host "[STATUS] 系统代理未设置 (HTTP_PROXY / HTTPS_PROXY 为空)"
} else {
Write-Host "[STATUS] 当前系统代理:"
Write-Host " HTTP_PROXY = $http"
Write-Host " HTTPS_PROXY = $https"
}
}
}
创建Windows运行脚本
以下文件不需要像proxy.ps1文件一样换编码格式
创建proxy-on.bat文件,输入以下代码:
@echo off
powershell -ExecutionPolicy Bypass -File "%~dp0proxy.ps1" on
创建proxy-off.bat文件,输入以下代码:
@echo off
powershell -ExecutionPolicy Bypass -File "%~dp0proxy.ps1" off
创建proxy-status.bat文件,输入以下代码:
@echo off
powershell -ExecutionPolicy Bypass -File "%~dp0proxy.ps1" status
二、添加进环境变量
先复制目录路径(比如我将文件都放在下面图片中的目录,那我直接复制该路径即可)

按键盘快捷键win+r打开运行窗口
输入sysdm.cpl打开系统属性窗口,随后依次点击:高级→环境变量→找到“系统变量”里面的PATH,选中并点击“编辑”→点击“新建”,将复制的目录粘贴,然后点击“确定”即可




三、使用效果
命令如下(在任意终端均可使用,且修改为全局,不会因终端关闭而取消修改)
proxy-on #打开代理
proxy-off #关闭代理
proxy-status #查看代理状态
使用效果如下图所示(执行速度跟电脑性能有关):

注:因为此代理是全局性的,所以日常使用过程中若出现网速过慢,可检查系统是否还处于代理状态