.
|-- MinGW64
| `-- bin
| |-- libgcc_s_seh-1.dll
| |-- libstdc++-6.dll
| `-- libwinpthread-1.dll
|-- go
| |-- usa
| | |-- go.mod
| | |-- usa.exe
| | `-- usa.go
| |-- usp
| | |-- go.mod
| | |-- usp.exe
| | `-- usp.go
| `-- usv
| |-- go.mod
| |-- usv.exe
| `-- usv.go
|-- path.c
|-- path.exe
|-- py # 新增Python源码目录(专业用户可测试/改写)
| |-- usa.py # 别名管理Python源码
| |-- usp.py # 环境变量管理Python源码
| `-- usv.py # 系统变量同步Python源码
|-- us.exe
|-- us.ps1
|-- us.txt
|-- usa.exe
|-- usap.exe # 别名管理Python打包版(p标注)
|-- usp.exe
|-- uspp.exe # 环境变量管理Python打包版(p标注)
|-- usv.exe
|-- usv_c
| |-- json.hpp
| |-- usv.cpp
| `-- usv.exe
|-- usvg.exe # 系统变量Go旧版(g标注)
`-- usvp.exe # 系统变量Python打包版(p标注)
8 directories, 30 files
| 用户类型 | 核心需求 | 使用方式 | 对应适配模块 |
|---|---|---|---|
| 普通用户 | 快速部署、图形化操作、无需编译过程 | 下载网盘中的安装包,解压后双击exe文件即可运行 | 预编译版本 us.exe / Go版 / C++版 功能程序 |
| 专业用户 | 支持源码修改、跨语言测试、功能拓展 | 解压资源包后修改 go/usa/usp、usv_c 或 py 目录下的源代码,并重新编译或执行 | Go/C++/Python 源码目录 |
| Python开发者 | 验证Python版本功能,适配现有Python工程生态 | 配置Python环境后直接运行py目录源码,或测试生成的Python打包exe | py目录源码 / usp/usap/usvp.exe |
功能定位: 解决MinGW64运行时所需系统PATH的自动注册问题,避免手动配置环境变量。作为整个工具集的基础支撑模块,为Go与C++组件提供必要的运行时路径保障。
主要特性:
GetModuleFileNameA
接口获取程序自身绝对路径,智能提取工具集根目录并拼接
MinGW64\bin
子路径,无需硬编码,适应任意部署位置;
SYSTEM\CurrentControlSet\Control\Session Manager\Environment
下的PATH值,通过
;
分割成段,逐段比对目标路径是否已存在,防止重复写入导致环境变量膨胀;
IsAdmin
检测当前权限状态,若不足则调用
RunAsAdmin
弹出提权请求窗口,并在失败时显示清晰中文提示;
DirExists
验证
MinGW64\bin
是否真实存在,若不存在则终止操作并提醒用户,杜绝无效注册;
SetConsoleGBK
强制控制台编码为GBK,确保全流程提示信息为中文,降低新用户理解门槛。
关键逻辑代码示例(路径去重实现):
char sysPathCopy[8192] = {0};
strcpy_s(sysPathCopy, sizeof(sysPathCopy), sysPath);
char* token = strtok(sysPathCopy, ";");
BOOL pathExists = FALSE;
while (token != NULL) {
StrTrimA(token, " \t");
if (StrCmpIA(token, targetPath) == 0) {
pathExists = TRUE;
break;
}
token = strtok(NULL, ";");
}
功能定位: 实现PowerShell别名的持久化存储与可视化全周期管理,彻底解决传统方式下别名重启失效的问题,显著提升终端操作效率,是本工具集的关键效率增强模块。
核心能力:
$PROFILE
路径,兼容PowerShell Desktop与Core版本;支持两种别名模式:
New-Alias
实现,适用于无参数命令(如
ja = java
);
Function
,支持参数透传(如
ll = Get-ChildItem $args
),灵活应对复杂场景;
ac/asnp/cat/cd
等),禁止覆盖关键命令;同时通过正则表达式限制别名命名规则,仅允许字母、数字和下划线组合,预防语法错误;
us_alias.json
文件中;
usa_history.json
记录最近100条操作日志,支持行为回溯与故障排查;
命令可实时验证当前会话中的别名是否已生效,并在显示列表中通过特定标识标注其状态。
Get-Alias
跨终端兼容性提示: 针对 Git Bash 等非 PowerShell 终端环境,系统将自动输出适配的别名配置指令,
?/?
实现多类型终端的无缝支持与配置生成。
alias ll='ls -l'
功能定位: 作为工具集的核心配置模块,全面覆盖 Windows 环境变量的管理需求,支持用户级与系统级权限区分,并提供配置的导入与导出功能。
核心特性:
system_env
和
user_env
便于实现多设备间的配置同步。
us_env.json
实时反映环境变量状态,减少对注册表的重复读取,显著提升操作响应速度。
us_env_history.json
包括操作时间、类型以及变量名称与值,支持后续审计与回溯。
isAdmin
当未以管理员身份运行时,禁止操作系统级环境变量的修改,防止因权限不足导致配置失败。
关键逻辑(写入系统级变量):
psCmd = fmt.Sprintf("[Environment]::SetEnvironmentVariable('%s', '%s', 'Machine')", name, value)
if !isAdmin() {
fmt.Println("? 操作系统环境变量需要管理员权限!")
return
}
_, stderr, ret := runPS(psCmd, true)
功能定位: 实现系统环境变量与 PowerShell Profile 文件之间的双向同步。该模块是工具集中唯一使用 C++ 编译的部分,旨在解决变量更改后在新终端中不生效的问题。
核心特性:
CreateDir
例如默认路径位置
Documents\WindowsPowerShell
若路径不存在,则调用递归创建函数完成目录构建,避免因路径缺失导致写入失败。
SHCreateDirectoryExA
usv_vars.json
保障缓存与 Profile 内容的一致性。
regex_error
可能引发的程序崩溃问题。
关键逻辑(写入 Profile 变量):
// 逐行删除旧变量行,避免正则依赖
bool inUsvBlock = false;
for (size_t i = 0; i < lines.size(); i++) {
std::string line = lines[i];
if (line.find("# USV同步变量 " + name) != std::string::npos) {
inUsvBlock = true;
continue;
}
if (inUsvBlock && line.find("$" + name + " = ") != std::string::npos) {
inUsvBlock = false;
continue;
}
if (!inUsvBlock) {
newContent += line + "\n";
}
}
// 追加新变量
newContent += "\n# USV同步变量 " + name + " - " + dateBuf + "\n";2.5 Python版工具模块(py目录) 功能定位 面向Python开发者,提供环境变量与别名管理的原生Python实现方案。该模块支持源码直接运行及打包为exe进行测试,兼顾Python生态的易用性与普及度,功能上与Go/C++版本完全对等。 核心特性 源码轻量运行usa.pyusp.py基于Python标准库构建,无需引入第三方依赖,可直接通过Python解释器执行,部署便捷,零额外配置。 打包版兼容usv.pyusap.exeuspp.exe提供由PyInstaller打包生成的exe可执行文件,便于无环境用户直接调用,同时保留原始源码结构,确保可读性与可修改性。 功能等价性 Python版本完整复现了Go/C++版本的核心能力,包括:别名永久写入PowerShell Profile、多作用域环境变量操作、系统变量与用户配置文件同步等功能,行为一致。 环境依赖兜底 针对打包后exe在部分系统中可能出现的运行时缺失问题,配套提供Python 3.12.6官方安装包,实现一键式环境补全,保障运行稳定性。 关键功能逻辑(Python版别名永久化) # 获取Profile路径并追加别名定义 profile_path = get_profile_path() with open(profile_path, 'a', encoding='utf-8') as f: f.write(f"\n# USA Alias {name} - {time.strftime('%Y-%m-%d')}\n") if ' ' in cmd: f.write(f"function global:{name} {{ {cmd} $args }}\n") else: f.write(f"New-Alias -Name '{name}' -Value '{cmd}' -Option AllScope -Force\n") 三、网盘分发与快速部署 3.1 网盘分发策略(依据最新资源清单更新) 为满足不同用户的使用场景和系统环境需求,工具集采用双平台网盘同步分发模式,提供三类核心文件:解压工具、主资源包、Python运行环境安装包。具体如下: | 网盘文件 | 大小 | 类型 | 主要用途 | |------------------------------|-----------|----------------|----------| | 7z2501-x64.exe | 1.57MB | exe安装包 | 安装7z解压工具,用于解压主资源包 | | us.7z | 12.32MB | 7z压缩资源包 | 包含全部工具exe、多语言源码及运行依赖 | | python-3.12.6-amd64.exe | 25.30MB | exe安装包 | 安装Python开发/运行环境,适配Python版工具 | 3.2 标准网盘分享链接 (1)百度网盘 链接: https://pan.baidu.com/s/19flLFUCUQV9LIv4XGUCgGg?pwd=iewk 提取码: iewk (2)蓝奏云 链接: https://wwblu.lanzouu.com/b014wwnarg 密码: 7a91 3.3 普通用户:一键安装与快速启动 普通用户无需接触源码或配置开发环境,仅需完成“下载-解压-安装-注册-启动”流程即可使用: 下载文件 从任一网盘获取上述三个文件,并统一存放至本地同一目录下(例如:usvp.exe); 安装解压工具 双击运行D:\软件\US工具集,按照安装向导完成7-Zip工具安装(此步骤为必要前置条件,用于后续解压us.7z); 解压主资源包 右键点击7z2501-x64.exe,选择“解压到‘us’”选项,自动创建工具集根目录; 注册系统路径依赖 进入us.7z目录,双击执行us脚本,授权管理员权限后,系统将自动把MinGW64/bin路径添加至PATH环境变量; 启动工具集界面 双击运行path.exe,调出图形化菜单,按需使用Go/C++版本子工具(独立运行,无外部依赖,运行最稳定)。 3.4 专业用户:多语言源码定制与环境适配 专业用户可根据需要修改源码实现功能扩展,并处理Python版本的运行环境依赖问题,具体流程如下: 终端解压资源包 打开CMD或PowerShell终端,切换至文件所在目录(如us.exe),执行以下命令进行解压: # 默认解压至当前目录下的us文件夹 7z x us.7z # 指定路径解压(-o后接目标路径,建议路径不含空格) 7z x us.7z -oD:\开发工具\US工具集 Python环境安装(适用于Python版工具) 若需运行或调试Python源码,或使用打包后的exe,需先安装运行环境。双击D:\软件\US工具集完成安装,建议勾选“Add Python to PATH”以简化后续配置。 多语言源码改写 Go模块 进入python-3.12.6-amd64.exe或go/usa目录,编辑go/usp/usa.go源文件,可实现新增别名类型、扩展环境变量导入格式等功能; C++模块 进入usp.go目录,基于usv_c和usv.cpp
六、技术亮点
多语言协同架构:提供 Go(高性能)、C++(底层操作)、Python(高易用性)三种语言版本,全面适配不同开发者的编程习惯。各版本在功能上完全对等,确保使用体验一致。
双用户精准适配:兼顾普通用户的“开箱即用”与专业用户的“深度定制”需求,实现免编译部署与源码级二次开发的并行支持,平衡便捷性与可扩展性。
双网盘+多安装包分发:通过多个分发渠道提供多样化安装包选择,提升获取稳定性与部署灵活性。
json.hpp
系统变量同步逻辑优化,新增批量同步机制,提升多环境配置效率。
五、关键环境适配说明(Python版工具专项)
由于 Python 打包生成的 exe 属于半独立程序,依赖本地 Python 运行时环境,当前尚未在无 Python 的 Win10 虚拟机中完成全量验证(现有测试环境预装了 Python 3.12.6)。若专业用户在测试过程中遇到以下问题,请参考对应解决方案:
python-3.12.6-amd64.exe
安装包,并务必勾选“Add Python to PATH”选项以完成环境注册;
py
目录下直接运行原始源码
python usa.py
验证核心逻辑是否正常,排除代码层面问题后再重新执行打包流程。
四、编译与部署(按用户类型划分,覆盖全语言模块)
4.1 普通用户:免编译直接调用
解压
us.7z
后,工具集已包含所有预编译的可执行文件,无需配置开发环境,按以下步骤操作即可使用:
path.exe
自动完成 MinGW 路径注册,重启终端后检查
gcc -v
命令是否可用;
us.exe
一体化操作菜单;
4.2 专业用户:Go/C++ 模块二次编译指南
(1)编译环境准备
nlohmann/json
单头文件,放置于
usv_c
目录中(供 C++ 模块调用)。
(2)分模块编译指令
① path.exe(C语言,基于 MinGW 编译)
# 进入工具集根目录
cd D:\开发工具\US工具集
# 编译并进行体积压缩
gcc path.c -o path.exe -lshlwapi -s
② Go 模块(usa/usp,需 Go 1.20+)
# 编译别名管理工具(usa.exe)
cd go/usa
go mod tidy
go build -ldflags="-s -w" -o ../../usa.exe
# 编译环境变量管理工具(usp.exe)
cd ../usp
go mod tidy
go build -ldflags="-s -w" -o ../../usp.exe
③ usv.exe(C++,MinGW 编译)
# 进入 C++ 源码目录
cd ../../usv_c
# 编译系统变量同步工具
g++ usv.cpp -o ../usv.exe -lshlwapi -lshell32 -std=c++11 -s
④ 打包 PowerShell 启动器(us.exe)
若修改了启动脚本,需重新打包为可执行文件,请以管理员权限执行以下命令:
us.ps1
# 安装 PS2EXE 模块
Install-Module -Name PS2EXE -Scope CurrentUser -Force
# 进入项目根目录
cd D:\开发工具\US工具集
# 执行打包命令(支持中文及管理员模式)
ps2exe -InputFile .\us.ps1 -OutputFile .\us.exe -STA -WinCP 936 -Title "US工具集启动器"
4.3 Python 模块:源码运行与打包说明
(1)源码直接运行(需已配置 Python 环境)
# 进入 Python 源码目录
cd D:\开发工具\US工具集\py
# 运行别名管理模块
python usa.py
# 运行环境变量管理模块
python usp.py
(2)Python 版打包(可选,面向专业用户)
如需将 Python 源码转换为独立 exe 文件,可使用
pyinstaller
工具,示例如下:
# 安装打包依赖
pip install pyinstaller
# 将 usa.py 打包为单文件可执行程序
pyinstaller -F usa.py -n usap.exe
Python 模块调整说明:
进入
py
目录,修改
usa.py
/
usp.py
源码文件,可直接通过
python usa.py
运行进行功能测试。
Python 版 exe 环境问题解决方案:
在对
usap.exe
/
uspp.exe
/
usvp.exe
(Python 打包版本)进行测试时,若出现“缺失 Python 环境组件”错误(例如提示
api-ms-win-crt-runtime-l1-1-0.dll
或无法找到解释器),无需手动下载零散组件,只需运行网盘提供的
python-3.12.6-amd64.exe
即可完成完整环境部署。该方案已在本地开发环境和测试虚拟机中验证兼容性。七、开源说明
开源协议
本项目遵循 MIT 开源协议,允许用户自由修改与商用,仅需保留原始作者信息即可。
版本迭代
Python 版本的源码已归档至
py 目录,打包生成的可执行文件以 p 作为后缀标识;g 后缀进行标注,C++ 版本则为最终发布的稳定版本。
环境适配说明
针对 Python 版工具存在的环境依赖问题,优先通过网盘提供的标准 Python 安装包进行统一配置,保障开发与测试环境的一致性。
八、致谢
感谢
nlohmann/json 提供的轻量级 JSON 解析库,显著简化了 C++ 模块中数据持久化的实现逻辑;功能优化亮点
提供集成化资源下载服务,涵盖解压工具、Python 运行环境及全套工具包,实现一站式获取,显著降低环境搭建复杂度,有效缓解 Python 打包版本中的依赖冲突问题。
在兼容性方面,C++ 模块采用字符串匹配机制替代正则表达式处理,规避因老旧编译器不支持高级特性导致的程序崩溃,提升整体稳定性。
在数据管理层面,全模块引入 JSON 格式的缓存机制并记录操作历史,支持配置状态回溯与多设备间的数据同步,大幅减少误操作带来的风险。
该工具集定位为个人开源项目,致力于解决 Windows 终端操作与环境配置中的常见痛点。普通用户可通过网盘快速完成部署,专业用户可根据需求基于多语言源码进行深度定制,Python 开发者亦可利用配套环境包实现无缝测试体验,欢迎 Star 与 Fork 共同参与项目共建。
扫码加好友,拉您进群



收藏
