1、 文档目标
在嵌入式软件开发流程中,对Keil MDK(Microcontroller Development Kit)工程执行"clean targets"操作是维护代码库整洁性和确保编译环境纯净度的重要步骤。通过外部脚本实现该操作,不仅能提升开发效率,还能避免手动操作中常见的路径误删或配置残留问题。
二、脚本实现方案
2.1 Windows批处理脚本实现
针对Windows开发环境,可编写如下批处理脚本(clean_mdk.bat):
@echo off
setlocal
:: 配置参数
set PROJECT_FILE="C:pathtoproject.uvprojx"
set UV4_PATH="C:KeilUV
2、问题场景
在所有的大型项目管理上,都存在项目代码管理系统。工程师可以将自己修改完的工程上传到代码管理平台中。但是,编译完后的工程会存在很多临时文件和一些构建过程中生成的文件,这些文件是不需要上传到代码管理平台中的。通常的操作是通过在MDK中的Project->Clean Targets操作去清除这个不需要的文件(如图2-1)。另外一种方法就是通过外部基本的方式去清除。

图2-1
3、软硬件环境
1)、软件版本:Keil MDK 5.38a(非必需)
2)、电脑环境:Windows 11
3)、外设硬件:无
4、解决方法
1)、创建一个txt文件,将文件的名字可以命名为"keilkill"或者自定义。然后,将文件扩展名".txt"修改成".bat"
2)、脚本中想要实现对于临时文件的删除需要使用windows的命令“del”。
命令的语法是:del [Drive:][Path]FileName[ ...][/p] [/f] [/s] [/q] [/a[:attributes]]具体脚本内容如下:脚本通过正则表达式去匹配所有需要删除的文件的文件扩展名。通过“/s”参数去保证从当前目录及其所有子目录中删除指定文件,并且在命令行窗口中显示正在被删除的文件名。最后用“exit”命令自动关闭命令行窗口,如果需要保留命令行窗口则可以使用“pause”命令(如图4-1)。如果还需要填加其他文件的删除可以自行参照下面脚步的写法进行添加。
(注:关于keil MDK所有生成的文件类型请参考:MDK的文件类型(官网))
del .bak /s ::备份文件
del .lst /s ::列表文件
del .lnp /s ::链接输入文件
del .obj /s ::可重定位的对象文件
del .plg /s ::总结上次构建过程的协议文件
del .tmp /s ::临时文件
del .__i /s ::工程调用文件
del .crf /s ::包含浏览信息(定义、标识符引用)的交叉引用文件。
del .o /s ::可重定位的对象文件。
del .d /s ::由ARMCC或GCC编译器生成的依赖文件。
del .axf /s ::由链接器生成的绝对可执行的目标文件
del .dep /s ::目标构建的依赖文件。
del .htm /s ::链接器的清单文件,通常为构建日志
del .sct /s ::链接器控制文件(分散加载)。
del .map /s ::由链接器生成的清单文件(或映射文件)。
exit ::执行完命令后会自动关闭命令行窗口
:: pause ::如果需要保留命令行窗口请使用pause

图4-1