::<-----獲取本.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】