jwd 发表于 2024-4-7 10:13:56

分享一个keil带编译时间的hex操作方法

      不知道你是否遇见过这样的情况,好久以前的用户告诉你,板子坏了,需要买一个新的板子,但是你现在的板子程序工艺和以前又不一样,不能通用,所以以前的我都是把编译后的hex文件手动另存为带日期的文件,我查找了网上的一些资料,让它自动生成带日期的文件,分享给有需要的人;
   
保存批处理文件


@echo off
::更改当前目录为批处理本身的目录
cd /d %~dp0
::获取日期 将格式设置为:20110820
set datevar=%date:~0,4%%date:~5,2%%date:~8,2%
::获取时间中的小时 将格式设置为:24小时制
set timevar=%time:~0,2%
if /i %timevar% LSS 10 (
set timevar=0%time:~1,1%
)
::获取时间中的分、秒 将格式设置为:3220 ,表示 32分20秒
set timevar=%timevar%%time:~3,2%%time:~6,2%
@echo %datevar%%timevar%


copy A.hexA%datevar%.hex
这样编译结果



ghost 发表于 2024-4-7 11:23:33

好像要放在工程目录中才行,能设置跟着调用目录走吗

jwd 发表于 2024-4-7 13:02:22

ghost 发表于 2024-4-7 11:23
好像要放在工程目录中才行,能设置跟着调用目录走吗

我是放在object目录下

wangxiangtan 发表于 2024-4-7 16:28:11

A.hex变成b.hex还会自动复制麽

zhp 发表于 2024-4-7 18:46:28

wangxiangtan 发表于 2024-4-7 16:28
A.hex变成b.hex还会自动复制麽

将楼主的bat稍作修改

将绝对文件名称 “A” 改为参数 “%1”,
如下:
@echo off
::更改当前目录为批处理本身的目录
cd /d %~dp0
::获取日期 将格式设置为:20110820
set datevar=%date:~0,4%%date:~5,2%%date:~8,2%
::获取时间中的小时 将格式设置为:24小时制
set timevar=%time:~0,2%
if /i %timevar% LSS 10 (
set timevar=0%time:~1,1%
)
::获取时间中的分、秒 将格式设置为:3220 ,表示 32分20秒
set timevar=%timevar%%time:~3,2%%time:~6,2%
@echo %datevar%%timevar%

copy %1.hex%1_%datevar%.hex
然后Keil的命令行改为如下格式即可





wangxiangtan 发表于 2024-4-8 08:17:43

zhp 发表于 2024-4-7 18:46
将楼主的bat稍作修改

将绝对文件名称 “A” 改为参数 “%1”,


厉害,批处理语句也有通配符啊

21cnsound 发表于 2024-4-8 08:57:50

批处理玩的都很溜,get到了

jwd 发表于 2024-4-8 09:32:02

zhp 发表于 2024-4-7 18:46
将楼主的bat稍作修改

将绝对文件名称 “A” 改为参数 “%1”,

{:4_250:}

jwd 发表于 2024-4-8 09:33:00

21cnsound 发表于 2024-4-8 08:57
批处理玩的都很溜,get到了

不然每次都要去自己拷贝一下

soma 发表于 2024-4-8 11:18:21

加上时间就更好了
页: [1] 2
查看完整版本: 分享一个keil带编译时间的hex操作方法