如何用批处理脚本将Git SHA1 ID写入头文件的#define
批处理脚本生成单行Git版本头文件
以下是能正确生成单行#define GIT_VERSION "SHA1值"格式的批处理代码,解决换行符和双引号处理问题:
@echo off setlocal :: 捕获Git版本SHA1(包含dirty标记) for /f "delims=" %%g in ('git describe --always --dirty') do set "GIT_SHA=%%g" :: 覆盖生成头文件 echo #define GIT_VERSION "%GIT_SHA%" > version.h endlocal
关键说明:
- 使用
for /f "delims=" %%g in ('命令')捕获git describe的输出,自动过滤掉命令输出末尾的换行符,将完整的SHA1字符串(含dirty标记)存入GIT_SHA变量。 echo ... > version.h直接输出单行定义并覆盖目标头文件,双引号会被正确保留在生成的内容中。setlocal和endlocal用于隔离变量,避免影响脚本外部环境。
内容的提问来源于stack exchange,提问作者AamerAirlines
相关产品推荐
相关产品推荐

