如图要实现一个每次编译都会自动重新生成的代码,一般是 软件版本相关的代码最适合这种自动生成
上图中需在用到编译时间和日期,来直接上代码:
:BEGIN
@COLOR 07
cls
@echo off
@ECHO ------------------------------------------------------------------------
@ECHO ************************ 自动生成软件版本号 ****************************
@ECHO *************************** smart version ****************************
@ECHO.
@ECHO -----------------------------------------------------------------------
set BinPath=D:\ServoBootZ\
set ProjectPath=..\
set extension=.bin
for /F "tokens=1-3 delims=/ " %%A in ('date/T') do set date=%%A%%B%%C
echo /* > %ProjectPath%\Version.h
echo * Version.h >> %ProjectPath%\Version.h
echo * >> %ProjectPath%\Version.h
echo * Created: %date% >> %ProjectPath%\Version.h
echo * Author: zhanglifu >> %ProjectPath%\Version.h
echo */ >> %ProjectPath%\Version.h
echo. >> %ProjectPath%\Version.h
echo #ifndef Version_H >> %ProjectPath%\Version.h
echo #define Version_H >> %ProjectPath%\Version.h
echo. >> %ProjectPath%\Version.h
echo. >> %ProjectPath%\Version.h
echo // V[T/R]X.Y.Z_YYYYMMDD版本格式 >> %ProjectPath%\Version.h
echo // T/R 表示测试或发布版本 >> %ProjectPath%\Version.h
echo // X 是系统编号 如果系统重新设计需加1 >> %ProjectPath%\Version.h
echo // Y 模块编号 如果模块重新设计需加1 >> %ProjectPath%\Version.h
echo // Z 功能编号 如果新增功能或修改加1 >> %ProjectPath%\Version.h
echo // YYYYMMDD 时间 >> %ProjectPath%\Version.h
echo. >> %ProjectPath%\Version.h
echo const uint8_t FirmwareVersion[] = {"VT1.1.1_%date%"}; >> %ProjectPath%\Version.h
echo. >> %ProjectPath%\Version.h
echo. >> %ProjectPath%\Version.h
echo #endif >> %ProjectPath%\Version.h
echo.>> %ProjectPath%\Version.h
:END