Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clash for Windows ToolBox

GitHub stars Platform Clash for Windows License Last Commit

如果觉得好用,点个 Star 支持一下~

一个面向 Clash for Windows v0.20.39 的命令行工具箱。通过纯 BAT + PowerShell 实现内核切换、内核更新、语言包切换、分流规则注入、Geo 数据库更新等常用运维操作,双击即用。

Important

仅支持 Clash for Windows v0.20.39。 其他版本目录结构、asar 语言包、mixin 机制可能不兼容。


📍 快速导航


✨ 功能特性

功能 说明
🔄 切换内核 在 Mihomo(Meta)和 Premium 之间切换,自动备份当前内核
⬆️ 更新内核 从 GitHub 拉取 Mihomo / Premium 最新版,校验后覆盖
🌏 切换语言 简体中文 / English 一键切换,缺失语言包自动下载
🎛️ 控制 Clash 启动 / 关闭 / 重启,关闭时自动清理系统代理
🧹 整理内核文件 按类型重命名,自动补齐缺失的内核文件
🔍 查看内核应用 检测三个内核文件的实际类型(Meta / Premium)
🧩 注入分流规则 向 Clash for Windows mixin 配置注入 Loyalsoldier 规则集
🌐 更新 Geo 数据库 GeoSite / GeoIP / Country.mmdb / GeoLite2-ASN.mmdb 一键更新
🔃 更新脚本 从 GitHub 拉取最新版本覆盖本地脚本
🛡️ 多重 CDN 回退 每个下载项配置多个镜像源,逐个尝试,自动切换
💾 备份与恢复 内核切换前自动备份,保留最近 3 个版本,可一键回滚

📦 文件清单

文件 说明
cfwtoolbox.bat 主脚本,包含全部 10 个功能菜单
Geo update.ps1 独立 Geo 更新脚本,供任务计划调用
Geo update.xml Windows 任务计划导入文件(每日自动更新 Geo)
resources\app.asar.zh 中文语言包(首次切换语言时自动下载)
resources\app.asar.en 英文原版语言包(首次切换语言时自动下载)
resources\static\files\win\x64\ 内核目录,脚本操作的主要目标
data\cfw-settings.yaml Clash for Windows 配置文件,mixin 注入目标
resources\static\files\win\x64\kernel-backup\ 内核备份目录,保留最近 3 个版本

🖥️ 系统要求

  • 操作系统:Windows
  • 必备:Clash for Windows v0.20.39
  • 依赖:PowerShell 5.1(Windows 自带)

🚀 部署步骤

  1. 下载 cfwtoolbox.bat,放到 Clash for Windows 根目录(与 Clash for Windows.exe 同级)。

  2. 确认目录结构

    Clash for Windows\
    ├── cfwtoolbox.bat          ← 放在这里
    ├── Clash for Windows.exe
    ├── resources\
    │   ├── app.asar
    │   └── static\files\win\x64\
    │       ├── clash-win64.exe
    │       ├── mihomo.exe
    │       └── premium.exe
    └── data\
        └── cfw-settings.yaml
    
  3. 双击 cfwtoolbox.bat,看到菜单即部署完成。

  4. (可选)配置 Geo 定时更新:见 Geo 定时更新配置


🧭 功能说明

1. 切换内核

在当前内核与目标内核之间切换:

  • 切换到 Mihomo:将 mihomo.exe 复制为 clash-win64.exe
  • 切换到 Premium:将 premium.exe 复制为 clash-win64.exe

流程:检测目标内核类型 → 停止 Clash for Windows → 备份当前内核 → 覆盖 → 启动 Clash for Windows。

💡 如果目标内核文件不存在,会提示是否从 GitHub 下载。

2. 更新内核

从 GitHub 拉取最新版本:

内核 下载源
Mihomo MetaCubeX/mihomo releases
Premium Z-Siqi/Clash-for-Windows_Chinese 仓库

更新后提示是否同步到当前内核(覆盖 clash-win64.exe)。

3. 切换语言

通过替换 resources\app.asar 切换 Clash for Windows 界面语言:

  • 简体中文:使用 app.asar.zh
  • English:使用 app.asar.en

首次切换时缺失的语言包会自动下载(约 30MB,从 xinyitang3/cfwtoolboxmaster 分支)。

💡 语言包下载后本地缓存,后续切换不再重复下载。

4. 控制 Clash

  • 启动:通过 Start-Process 独立启动,不挂在本脚本进程
  • 关闭taskkill 杀掉 Clash for Windows 和内核进程,同时清除系统代理(注册表 + WinINET 刷新)
  • 重启:关闭 + 启动

5. 整理内核文件

自动识别内核目录中的 exe 文件类型,按类型重命名:

  • Meta 类型 → mihomo.exe
  • Premium 类型 → premium.exe

同时备份所有 exe 到 resources\static\files\win\x64\kernel-backup\,保留最近 3 个。

6. 查看内核应用

检测并显示三个内核文件的实际类型:

Active  [clash-win64.exe]: Meta
Mihomo  [mihomo.exe]: Meta
Premium [premium.exe]: Premium

7. 注入分流规则

data\cfw-settings.yamlmixinText 字段注入以下规则:

  • rule-providers:DIRECT / PROXY / REJECT 三个规则集,来自 Loyalsoldier/clash-rules
  • prepend-rules:REJECT → PROXY → DIRECT 三条规则前置

Warning

注入前需手动在 Clash for Windows 界面开启"混合配置"开关(开关状态保存在 leveldb,脚本无法修改)。 脚本已注入过则自动跳过,如需更新请手动编辑配置文件。

8. 更新 Geo 数据库

更新 data\ 目录下的 4 个数据库文件:

文件 数据源
GeoSite.dat Loyalsoldier/v2ray-rules-dat
GeoIP.dat Loyalsoldier/v2ray-rules-dat
Country.mmdb alecthw/mmdb_china_ip_list
GeoLite2-ASN.mmdb xishang0128/geoip

关闭 Clash for Windows → 下载 → 启动 Clash for Windows。

9. 更新脚本

从 GitHub 拉取最新版 cfwtoolbox.bat 覆盖本地:

  1. 下载到 %TEMP%\cfwtoolbox_new.bat
  2. 大小 + 文件头双重校验
  3. 生成独立 apply 脚本,等主脚本退出后覆盖
  4. 自启动新版脚本

10. 退出脚本

退出工具箱。


⚙️ Geo 定时更新配置

Geo update.ps1Geo update.xml 用于配置 Windows 任务计划,每天自动更新 Geo 数据库。

导入任务计划

  1. 修改 Geo update.xml 中的以下字段,改为你的实际路径:

    <Arguments>-ExecutionPolicy Bypass -WindowStyle Hidden -Command "$s = Join-Path $env:USERPROFILE '.config\clash\Geo update.ps1'; &amp; $s"</Arguments>

    .config\clash\Geo update.ps1 替换为你的实际路径,例如:

    $s = '<你的路径>\Geo update.ps1'; & $s
    
  2. 打开 任务计划程序导入任务 → 选择 Geo update.xml

  3. 确认触发时间(默认每天 05:00)、运行账户、是否使用最高权限。

脚本行为

Geo update.ps1 独立运行时:

  1. 检测当前是否有 Clash 进程在运行
  2. 若在运行,taskkill 关闭并记录主程序路径
  3. 清除系统代理
  4. 从多个镜像下载 4 个 Geo 文件
  5. 若之前 Clash 在运行,重启它

与主脚本的区别

特性 主脚本 cfwtoolbox.bat 独立 Geo update.ps1
运行方式 手动双击 任务计划自动
是否关 Clash 智能检测
下载超时 60s 20s
重启 Clash 总是重启 仅在原本运行时重启

🌐 CDN 源清单

所有下载项均配置多个镜像,按顺序尝试,第一个成功即退出。

功能 2 / 3 / 9(内核 / 语言包 / 脚本)

  1. ghfast.top(GitHub 代理)
  2. fastly.jsdelivr.net(仅脚本更新)
  3. testingcf.jsdelivr.net(仅脚本更新)
  4. cdn.jsdelivr.net(仅脚本更新)
  5. raw.githubusercontent.com(直连)
  6. gh-proxy.com
  7. mirror.ghproxy.com

功能 8(Geo 数据库)

每个文件 7 个源:

  1. fastly.jsdelivr.net
  2. ghfast.top
  3. testingcf.jsdelivr.net
  4. cdn.jsdelivr.net
  5. raw.githubusercontent.com
  6. gh-proxy.com
  7. mirror.ghproxy.com

功能 7(mixin 规则)

固定使用 fastly.jsdelivr.net


❓ 常见问题

📁 脚本提示"找不到内核目录"

确认脚本与 Clash for Windows.exe 同级,且 resources\static\files\win\x64\ 目录存在。

🧩 注入分流规则后不生效
  1. 确认 Clash for Windows 界面的混合配置开关已打开
  2. 检查 data\cfw-settings.yaml 中是否有 mixinText 字段
  3. 如果已注入过(rule-providers 关键字存在),脚本会自动跳过,需手动编辑
💾 内核备份占用空间大

resources\static\files\win\x64\kernel-backup\ 目录只保留最近 3 个备份,会自动清理。如需手动清理,直接删除该目录即可。

🕒 Geo 定时任务不执行
  1. 检查任务计划程序中任务是否存在且启用
  2. 确认 XML 中的 PowerShell 路径正确
  3. 确认运行账户有权限访问脚本路径
  4. 查看任务历史记录中的错误信息
🚫 关闭 Clash 后系统代理未清除

脚本关闭 Clash for Windows 时会执行:

  • 注册表 ProxyEnable 设为 0
  • 调用 WinINET InternetSetOption 刷新

如果仍无效,手动检查 设置 → 网络和 Internet → 代理


🙏 致谢

主程序与内核

规则与数据库

CDN 与代理

  • jsDelivr:jsdelivr/jsdelivr
  • GitHub 加速代理:ghfast.topgh-proxy.commirror.ghproxy.com

许可证:本项目采用 MIT License 开源。

About

一个面向 Clash for Windows v0.20.39 的命令行工具箱。通过纯 BAT + PowerShell 实现内核切换、内核更新、语言包切换、分流规则注入、Geo 数据库更新等常用运维操作,双击即用。

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages