::<-----获取本.bat文件所在目录并截取上两级的目录----->
if %cd%==%cd:~,3% echo 当前目录已经是%cd:~,1%盘的根目录!&goto end
cd..
set "ProjectPath0=%cd%"
cd..
set "ProjectPath=%cd%"
if "%ProjectPath%"=="%ProjectPath0%" (echo 上一级目录是: %cd:~,1%盘的根目录!)
:end
::echo Project目录: %ProjectPath%
echo 【一、 定义变量】
::<-----定义指定工程下的app和boot的.bin文件路径----->
set AppFile=%ProjectPath%\APP\OBJ\A8-App.bin
set BootFile=%ProjectPath%\Boot\OBJ\Bootloader.bin
set MergeName=Merge-V1.0.bin
::<-----定义BootFlashSiz指定Boot所占的文件大小----->
set /a BootFlashSize = 20
::<-----定义自动生成由时间组成的文件夹名称字段DataField,列:2020-11-23-11-31-28----->
set DataField=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%
::<-----定义文件夹名称字段OutField=Output----->
set OutField=Output
set BootFirmwareField=Boot烧录固件
set ServerFirmwareField=服务器升级固件
set MergeFirmwareField=生产烧录固件
::<-----定义Merge为最终生成的生产固件字段----->
set MergeFile="%ProjectPath%\%OutField%\%DataField%\%MergeFirmwareField%\%MergeName%"
echo 【二、 创建文件夹】
::<-----创建目标文件夹Output,包含创建服务器、生产、Boot所需的文件夹----->
if not exist %ProjectPath%\%OutField% mkdir %ProjectPath%\%OutField%
if not exist %ProjectPath%\%OutField%\%DataField% mkdir "%ProjectPath%\%OutField%\%DataField%"
::<-----准备boot文件 空bin文件撑开不需要写部分,size取决于app在flash起始地址之前的空间大小----->
set /a bootsize = %BootFlashSize%*1024
for %%a in (%BootFile%) do set /a size="%bootsize%"-%%~za
echo Boot文件大小:【%BootFlashSize% Kb】