返回 Bug 清单
BUG-0105project-03低已修复batch-env

build_windows.bat 环境变量 `%UNITY_EXE%` 被 cmd 错误解析

发现:2026-09-30验证:2026-10-27置信度:85%

症状

([README_build.md: 故障排查](file://d:/ai_mirror/README_build.md#L135)):在 Windows cmd 中运行 `build_windows.bat` 时报错: ``` 'ITY_EXE' 不是内部或外部命令 ```

根因

cmd 中 `%UNITY_EXE%` 环境变量被错误解析为 `%UN` + `ITY_EXE%`。当环境中已存在 `%UN%` 变量时(或空值),cmd 先展开 `%UN%`(空字符串),剩余 `ITY_EXE%` 成为自变量。这是 Windows cmd `%var%` 解析机制的已知陷阱。

修复方案

(已在 `build_windows.bat` 和 `README_build.md` 中修复): 1. `build_windows.bat` 使用 `setlocal EnableDelayedExpansion` 和 `!UNITY_EXE!` 延迟展开 2. 移除注释行中的 `%UNITY_EXE%` 引用(注释中的百分号也会被解析) 3. 在 README_build.md 故障排查中明确说明此问题及 `set UN=` 解法 4. 推荐优先使用 `build_windows.ps1`(PowerShell 无此问题)

修复命令

(已在 `build_windows.bat` 和 `README_build.md` 中修复):
1. `build_windows.bat` 使用 `setlocal EnableDelayedExpansion` 和 `!UNITY_EXE!` 延迟展开
2. 移除注释行中的 `%UNITY_EXE%` 引用(注释中的百分号也会被解析)
3. 在 README_build.md 故障排查中明确说明此问题及 `set UN=` 解法
4. 推荐优先使用 `build_windows.ps1`(PowerShell 无此问题)

错误签名

cmd 中 `%UNITY_EXE%` 环境变量被错误解析为 `%UN` + `ITY_EXE%`。当环境中已存在 `%UN%` 变量时(或空值),cmd 先展开 `%UN%`(空字符串),剩余 `ITY_EXE%` 成为自变量。这是 Windows cmd `%var%` 解析机制的已知陷阱。

技术信息

来源项目

project-03

涉及文件

build_windows.bat, README_build.md

标签

batch-env, project-03