返回 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