一、需求说明
原始 Keil 输出:xxx.hex
编译后自动生成新文件,格式示例:
123456789_20261024_102400.hex
- 前缀:项目 / 机型编号
- 后缀:年月日_时分秒
- 保留原始 hex 不覆盖,归档一份带时间戳的副本
二、批处理bat脚本

上图所示,假设工程的名称叫"123456789",通过"Select Folder for Objects"选择输出的文件夹为Objects;
在Objects文件夹下,新建文本文档,文档命名为"auto_rename_hex",并将后缀txt改为bat,文件内部复制以下代码,可以根据工程的实际情况修改文件路径和文件名:
bash
@echo off
setlocal enabledelayedexpansion
:: 获取当前日期和时间,格式为:20261024_102401
set DATETIME=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
:: 处理时间中小时位可能出现的空格(如 " 9" 变成 "09")
set DATETIME=%DATETIME: =0%
:: Keil输出Hex文件
set DEFAULT_HEX=.\Objects\123456789.hex
:: 新的文件名
set NEW_HEX=.\Objects\123456789_%DATETIME%.hex
:: 检查原 Hex 文件是否存在,然后复制
if exist "%DEFAULT_HEX%" (
copy "%DEFAULT_HEX%" "%NEW_HEX%"
echo Copied HEX to: %NEW_HEX%
) else (
echo Error: Default HEX file not found!
)
endlocal
然后在User选项卡中,勾选"After Build/Rebuild"中的"Run#1",并选择刚才创建好的bat文件,点OK确认;

之后在Build完工程后,会自动调用批处理文件,复制一份hex文件,并按照规则重新命名,如下图:
