::<-----獲取本.bat文件所在目錄并截取上兩級(jí)的目錄----->
if %cd%==%cd:~,3% echo 當(dāng)前目錄已經(jīng)是%cd:~,1%盤的根目錄!&goto end
cd..
set "ProjectPath0=%cd%"
cd..
set "ProjectPath=%cd%"
if "%ProjectPath%"=="%ProjectPath0%" (echo 上一級(jí)目錄是: %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
::<-----定義自動(dòng)生成由時(shí)間組成的文件夾名稱字段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=服務(wù)器升級(jí)固件
set MergeFirmwareField=生產(chǎn)燒錄固件
::<-----定義Merge為最終生成的生產(chǎn)固件字段----->
set MergeFile="%ProjectPath%\%OutField%\%DataField%\%MergeFirmwareField%\%MergeName%"
echo 【二、 創(chuàng)建文件夾】
::<-----創(chuàng)建目標(biāo)文件夾Output,包含創(chuàng)建服務(wù)器、生產(chǎn)、Boot所需的文件夾----->
if not exist %ProjectPath%\%OutField% mkdir %ProjectPath%\%OutField%
if not exist %ProjectPath%\%OutField%\%DataField% mkdir "%ProjectPath%\%OutField%\%DataField%"
::<-----準(zhǔn)備boot文件 空bin文件撐開不需要寫部分,size取決于app在flash起始地址之前的空間大小----->
set /a bootsize = %BootFlashSize%*1024
for %%a in (%BootFile%) do set /a size="%bootsize%"-%%~za
echo Boot文件大。骸%BootFlashSize% Kb】