CopyBinFile.bat 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. @echo off
  2. setlocal
  3. :: 启用延迟扩展
  4. setlocal EnableDelayedExpansion
  5. @REM 可执行文件(exe)文件名
  6. set EXE_NAME=V9_AG_PMU_APP_
  7. @REM 可执行文件(exe)文件路径
  8. set EXE_PATH=.\build
  9. @REM 定制Hex输出路径
  10. set OUTPUT_PATH=.\build
  11. @REM 定制Hex文件名
  12. set output_file_name=%EXE_NAME%
  13. @REM fromelf文件路径
  14. ::Set FROMELF_PATH=D:\Keil_v5\ARM\ARMCLANG\bin
  15. @REM 转换并定制Bin文件名 需要将fromelf.exe的路径添加到环境变量中
  16. fromelf --bin %EXE_PATH%\%EXE_NAME%.axf --output %OUTPUT_PATH%\%output_file_name%.bin
  17. cls
  18. echo %date%
  19. echo %time%
  20. del ..\binFile\*.bin /s
  21. del ..\binFile\*.hex /s
  22. set FileName=%Date:~0,4%%Date:~5,2%%Date:~8,2%
  23. echo %FileName%
  24. set "search_dir=..\build"
  25. set "search_ext=V9_AG_PMU_APP_EFTZ*.bin"
  26. set "found_file="
  27. for /R "%search_dir%" %%F in (%search_ext%) do (
  28. set "found_file=%%~nF"
  29. )
  30. @REM 软件版本文件路径
  31. set "VERSION_FILE_PATH=..\user_inc\config.h"
  32. @REM 软件版本字符串的格式
  33. set "SOFTWARE_VERSION=Z70_DRONE"
  34. @REM 获取软件版本,通过标识符找到所在行,然后根据第一个字符判断并赋值
  35. for /f "tokens=1* delims= " %%a in ('type "%VERSION_FILE_PATH%" ^| findstr /C:"%SOFTWARE_VERSION%"') do (
  36. echo %%a
  37. set "firstChar=%%a"
  38. :: 去除第一个字符前后的空格
  39. set "firstChar=!firstChar:~0,1!"
  40. :: 判断第一个字符
  41. if "!firstChar!"=="/" (
  42. set "SW_Ver=Z20"
  43. ) else if "!firstChar!"=="#" (
  44. set "SW_Ver=Z70"
  45. ) else (
  46. set "SW_Ver=UNKNOWN"
  47. )
  48. goto :breakLoop
  49. )
  50. :breakLoop
  51. copy ..\build\%found_file%.bin ..\binFile\%found_file%%FileName%.bin
  52. copy ..\build\%found_file%.hex ..\binFile\%found_file%%FileName%.hex
  53. @REM 显示并复制Hex文件AREM
  54. echo Output hex file: %found_file%%FileName%%SW_Ver%%SW_Ver2%.bin
  55. :: 关闭延迟扩展
  56. endlocal
  57. ::pause
  58. exit