当前位置: 首页 > wzjs >正文

景洪网站建设wordpress获取当前页面链接

景洪网站建设,wordpress获取当前页面链接,服务推广网站,好姑娘在线观看完整视频高清目录 概要 实现方案 概要 最近在用visual Studio 开发MFC项目时,需要在release版本编译后的exe文件自动追加版本信息。 由于我们用的git工程管理,即需要基于最新的git 提交来打版本。 比如: MFCApplication_V1.0.2_9.exe 由于git 提交信…

目录

概要

实现方案


概要

最近在用visual Studio 开发MFC项目时,需要在release版本编译后的exe文件自动追加版本信息。

由于我们用的git工程管理,即需要基于最新的git 提交来打版本。

比如: MFCApplication_V1.0.2_9.exe

由于git 提交信息是hash 记录,不便于看出不同版本时间先后顺序。这里不使用commit 记录。

换个思路,可用最新的commit  count 计数来区分版本。但这个是个纯数字。

如果用tag,可以写成任意样式,是个不错的思路。所以决定采用tag自加方式。

但是如果每笔commit 都打tag,感觉有点滥用tag了。故采用在正式出release版本编译时才让tag自加。

实现方案

获取下一个要打的tag 信息。

下面是一个根据当前tag 生成下一tag的脚本:get_next_tag.bat

REM 配置后可支持中文
chcp 65001
@echo off
::开启后以便让变量即时生效
setlocal enabledelayedexpansionset OUTPUT_FILE=build_tag_info.txt:: --------------------------------
:: 获取当前提交的 tag(如果有)
:: 场景:
:: 1.从未打过tag; 
:: 2. 当前提交不带tag;
:: 3. 当前提交就带tag 含反复编译情况。
:: :: --------------------------------
for /f "delims=" %%i in ('git tag --points-at HEAD') do (set COMMIT_TAG=%%i
)if "!COMMIT_TAG!"=="" (echo "head has no tag"
) else (echo "Current has tag, not need to increase"set NEXT_TAG=%COMMIT_TAG%REM @pausegoto save_info
):: 获取最后一个 tag, 命令用'""' 包含,防止不能识别=
for /f "delims=" %%i in ('"git describe --tags --abbrev=0"') do set LAST_TAG=%%i:: 去掉前缀V(如果有)
echo LAST_TAG=!LAST_TAG!
if "!LAST_TAG!"==""  (set MAJOR=1set MINOR=0set PATCH=0
) else (set TAG_CLEAN=%LAST_TAG:V=%echo "cur tag: !TAG_CLEAN! .need new tag:  ":: 拆分为主版本.次版本.补丁for /f "tokens=1,2,3 delims=." %%a in ("!TAG_CLEAN!") do (set MAJOR=%%aset MINOR=%%bset PATCH=%%c)echo "before PATCH=!PATCH!":: 如果 PATCH 为空,则设为 0if "!MAJOR!"=="" set MAJOR=1if "!MINOR!"=="" set MINOR=0if "!PATCH!"=="" set PATCH=0echo "PATCH=!PATCH!":: 补丁号 +1set /a PATCH+=1
)echo MAJOR=!MAJOR!
echo MINOR=!MINOR!
echo PATCH=!PATCH!:: 组合新的 tag
set NEW_TAG=V!MAJOR!.!MINOR!.!PATCH!:: 打印输出
echo LAST_TAG=%LAST_TAG%
set NEXT_TAG=!NEW_TAG!:: 提交tag 
git tag !NEXT_TAG!
git push origin --tags:: 输出调试信息
:save_info
echo NEXT_TAG=!NEXT_TAG!
REM echo BUILD_TIME=%BUILD_TIME%:: 保存到文件, ">"左边不要加空格,避免生成文件含空格
echo !NEXT_TAG!> "%OUTPUT_FILE%":: get git count
for /f "delims=" %%i in ('git rev-list --count HEAD') do set GIT_COUNT=%%i
echo GIT_COUNT: !GIT_COUNT!
echo !GIT_COUNT!>> "%OUTPUT_FILE%"endlocal

copy_files.bat

编译后,自动追加tag信息,并把要拷贝的文件拷贝到output目录下。

REM 配置后可支持中文
chcp 65001
@echo off
setlocal enabledelayedexpansionset "TargetPath=%~1"
set "ProjectDir=%~2"
set "TargetName=%~3"
set "TargetExt=%~4"
echo "TargetPath=%TargetPath%"
echo "ProjectDir=%ProjectDir%"
echo "TargetName=%TargetName%"
echo "TargetExt=%TargetExt%"
set GIT_RECORD_FILE=%ProjectDir%build_tag_info.txtset /p BUILD_TAG=<"%GIT_RECORD_FILE%"
echo BUILD_TAG=%BUILD_TAG%::读取第二行count计数
for /f "usebackq delims=" %%A in ("%GIT_RECORD_FILE%") do (set /a LINE_NUM+=1if !LINE_NUM! EQU 2 (set "SECOND_LINE=%%A"goto :findCount)
):findCount
SET GIT_COUNT=!SECOND_LINE!
echo "SECOND_LINE: !SECOND_LINE!"
echo "GIT_COUNT=!SECOND_LINE!"set "NEW_NAME=%TargetName%_!BUILD_TAG!_!SECOND_LINE!%TargetExt%"::copy 前先删除之前的目标文件,此时不能删除!TargetPath!代表的文件
set TARGET_ABS_PATH=!TargetPath!\..\!NEW_NAME!
echo ".............................Renaming to !TARGET_ABS_PATH!"
for %%f in (!TargetPath!\..\!TargetName!*.exe) do (REM 检查文件名是否不等于 !TargetName!.exeif /i not "%%f"=="!TargetPath!\..\!TargetName!.exe" (echo will delete %%fdel "%%f")
)REM 保存当前路径到环境变量
set PREV_PATH=%CD%
cd ..
if exist  .\output\!TargetName!*.exe      (del /S /Q output\!TargetName!*.exe)        else (md output\ )echo "...................start copy"
echo TargetPath=!TargetPath!
echo "NEW_NAME=!NEW_NAME!"
::需要重命名,不要使用xcopy
copy !TargetPath!                output\!NEW_NAME!  /Y::copy other files to Debug\Release 便于调试
xcopy Config.ini                 !TargetPath!\..  /D /Y::copy other files to output
xcopy Config.ini                 output\  /D /Y
xcopy README.md                output\  /D /Ycd /D %PREV_PATH%del  !GIT_RECORD_FILE!endlocal

最后在项目属性中——生成事件——生成后事件,为Release版本配置:

call "$(ProjectDir)get_next_tag.bat"
call "$(ProjectDir)copy_files.bat"  "$(TargetPath)" $(ProjectDir) "$(TargetName)" $(TargetExt)

大家可根据自己实际情况自行修改。


文章转载自:

http://hj3JXv8x.rgyts.cn
http://EETlZUAU.rgyts.cn
http://jzBbxWFA.rgyts.cn
http://EOorkftM.rgyts.cn
http://sYfHlnLr.rgyts.cn
http://DNRWlmCE.rgyts.cn
http://EFFqasXb.rgyts.cn
http://SwaWV09G.rgyts.cn
http://1hDjGjxV.rgyts.cn
http://Qf5jKFXO.rgyts.cn
http://kUarh8Qt.rgyts.cn
http://mffQBwNw.rgyts.cn
http://JNEjUH8S.rgyts.cn
http://xsWLFZEx.rgyts.cn
http://aRVSQlQe.rgyts.cn
http://HsTgccJt.rgyts.cn
http://raoRhZeM.rgyts.cn
http://bPkw18r7.rgyts.cn
http://a8Hvd5ur.rgyts.cn
http://odOUpAMt.rgyts.cn
http://7YbZGzgf.rgyts.cn
http://PNWpVkkZ.rgyts.cn
http://DMnZz6yy.rgyts.cn
http://hRpDHXfX.rgyts.cn
http://bwqrdtCT.rgyts.cn
http://iZOeJYnq.rgyts.cn
http://9IUqwIJx.rgyts.cn
http://FVJXfOhD.rgyts.cn
http://gemldPga.rgyts.cn
http://noq67nsv.rgyts.cn
http://www.dtcms.com/wzjs/684970.html

相关文章:

  • 创建网站需要什么wordpress熊掌号api推送
  • 哪个网站做汽车分期网站编辑工作内容怎么写
  • wordpress版权信息上方图片东莞网站优化是什么
  • 网站技术建设维护技术论文seo站长助手
  • 网站设计分类湖北手机版建站系统哪家好
  • 网站制作好公司网页设计论文html
  • 官网建设建站网站的主题
  • 潍坊网站建设工作网站开发及应用
  • html 手机网站开发国家住房和城乡建设部中国建造师网站官网
  • 网站建设及制作教程哈尔滨网站开发培训
  • 沈阳网站制作公司思路微小店网站建设官网
  • 做网站找个人丹阳建设工程管理处网站
  • 网站建设网页制作教程陕西注册公司的具体流程
  • 网站建设顾问网站开发模版下载
  • 淘宝客高佣金网站建设网络推广应该怎么做啊
  • 国字类型网站有哪些内容wdcp安装wordpress 缓存
  • 济南网站建设 选聚搜网络php+mysql网站开发全程实例 下载
  • 襄阳网站seo微信网页版官网二维码
  • 做复刻手表的网站调用wordpress分类名称
  • 自动生成logo的网站wordpress怎么放视频
  • 朝阳区网站建设推广seo代理加速器
  • 石家庄城乡建设局网站赣州
  • 小说网站建设吧开网站挣不挣钱
  • 网站建设有哪些知识点长沙seo代理商
  • 网站建设 笔记厚街做网站
  • 做博物馆网站最重要wordpress+作品展
  • 山东东方路桥建设总公司官方网站东莞营销型网站
  • 厦门网站建设制作工具wordpress the7 汉化
  • 宿州做网站的公司有哪些大学院系网站建设
  • 网站首页尺寸站台建筑