比如我想把git代码的commitid获取以后加到文件夹上来标记文件夹中的包是哪个git 节点构建得到的。

git 命令是git rev-parse --short HEAD

再linux系统下,只需要执行下面的命令:

  commitid=`git rev-parse --short HEAD`

  echo commitid=$commitid

但是在windows系统下,却不能直接使用反引号,要使用for变通下,命令如下:  

for /F %%i in ('git rev-parse --short HEAD') do ( set commitid=%%i)
echo commitid=%commitid%

执行结果如下:

我的任务参数设置如下图:

最后我的文件夹的名字就可以达到下面的效果了:

此外,还有如果我们要findstr 某个字符串来确定是否包含的时候,我遇到了这个报错:“此时不应有 |。”

是因为|是特殊字符,需要转义,不然会报错,比如我们要过滤tag中是否有tag_r10001,正确的:

setlocal ENABLEDELAYEDEXPANSION

set b_tag=tag_r10001

for /F %%j in ( 'git tag ^| findstr %b_tag%' ) do ( set tag_flag=%%j )   
echo tag_flag=!tag_flag!
::如果这个tag存在,则切换到tag,如果不存在,提示tag错误,并显示已有tag,然后异常退出
if not "!tag_flag!" == "" (
  echo "checkouting %b_tag% ....."
  git checkout %b_tag%
)else (
  echo "your input tag is not exist and exit ,all tag as follow:"
  git tag
  exit 1
)

上面这段表示,首先finstr过滤tag_r10001的结果给tag_flag,如果tag_flag为空,表示tag不存在,出错退出,如果存在,切换到对应tag。

 其中,我在调试阶段:set tag_flag以后,使用echo tag_flag=%tag_flag%,怎么都不能输出正确的结果,值都是空的,哪怕tag是存在的,

这里要说一下“延迟环境变量扩展”,通过setlocal ENABLEDELAYEDEXPANSION 设置参考:https://blog.csdn.net/kolamemo/article/details/18036021

注意:for /F %%j in ( 'git tag ^| findstr %b_tag%' ) 这里,括号中使用的是单引号,不是反引号

bat/cmd将命令执行的结果赋值给变量的更多相关文章

  1. bat批处理下如何像shell一样将命令执行的效果赋值给变量

    在bat下如何实现像shell一样,把执行命令行后的结果赋值给变量呐? 刚开始,可真难为到我了.随着对bat批处理知识熟悉的加深. 学习到了!!! 举个 栗子: svnlook  uuid  C:\R ...

  2. [转]Windows中的命令行提示符里的Start命令执行路径包含空格时的问题

    转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提 ...

  3. 转:Windows中的命令行提示符里的Start命令执行路径包含空格时的问题

    转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提 ...

  4. 使用批处理文件(.bat)启动多个CMD窗口并执行命令

    由于每次启动本机的kafka都需要打开2个cmd窗口,分别启动zookeeper服务和kafka服务,操作相对繁琐,于是想起了批处理来帮忙一键启动. 在桌面新建一个txt文件,改后缀名为.bat,并加 ...

  5. Windows常用批处理命令 CMD BAT (CMD目录操作等dir)

    Windows常用批处理 CMD BAT CMD获取文件夹下所有文件的名称并打印(输出)到指定目录 dir C:\Users\\Desktop\png\*.*/s >c:\.txt //cmd ...

  6. BAT脚本如何自动执行 adb shell 以后的命令

    @echo off echo su > temp.txt echo 其它命令 >> temp.txt adb shell < temp.txt del temp.txt 求问 ...

  7. [转] 打开 CMD 时自动执行命令

    [转] 打开 CMD 时自动执行命令 问题描述 在Windows中打开一个command-prompt时,我正在寻找一种方法来执行一些控制台命令,特别是设置一些命令别名. 例如,当打开command- ...

  8. 【linux】linux 下 shell命令 执行结果赋值给变量【两种方式】

    方法1:[通用方法] 使用Tab键上面的反引号 例子如下: find命令 模糊查询在/apps/swapping目录下 查找 文件名中包含swapping并且以.jar结尾的文件 使用反引号 引住命令 ...

  9. BAT批量处理 命令

    第一章 批处理基础第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令.小知识:可以 ...

随机推荐

  1. centos 7 删除yum安装的openjdk

    # java -version # rpm -qa | grep java rpm -e --nodeps (rpm -qa的结果们) # java -version

  2. CentOS搭建内网NTP服务器

      在企业内部网络,不是所有的服务器都可以连接外网,需要搭建一台可以连接外网的服务器用于NTP服务器 安装环境查看 安装ntp yum -y install ntp 修改配置文件 driftfile ...

  3. 无法在Web服务器上启动调试。

    Ⅰ x 操作超时 有关详细信息,请单击"帮助" x IIS--应用程序池--找到用到的程序池--回收   2 报这个错误的时候,我的IIS应用程序池只有一个>>> ...

  4. POJ 3635 - Full Tank? - [最短路变形][手写二叉堆优化Dijkstra][配对堆优化Dijkstra]

    题目链接:http://poj.org/problem?id=3635 题意题解等均参考:POJ 3635 - Full Tank? - [最短路变形][优先队列优化Dijkstra]. 一些口胡: ...

  5. [No000015D]【李笑来 笔记整理】个人商业模式升级

    提前知道地图对你到达目标是至关重要的. 比较女性与男性的成本:女性的成本更高(周期性激素分泌波动),所以不要再这个时候和女朋友较劲,她也是身不由己,当你知道这件事情之后,你就会试着去理解她. 下面这张 ...

  6. ElasticSearch入门 第一篇:Windows下安装ElasticSearch

    这是ElasticSearch 2.4 版本系列的第一篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  7. ZOJ - 2853 Evolution 线性变换变成矩阵快速幂

    题意:给你N个数,1~N分别为num[i],  以及T个 (i,j,P) 对于每组(i,j,P),让你将  num[i] 减去 P*num[i]  再把 P*num[i] 加到 num[j] 上.T个 ...

  8. Server:www121 Server:www120 Server:NWS_SP

    Request URL:http://www.biyao.com/minisite/bzzx Request Method:GET Status Code:200 OK Remote Address: ...

  9. ssm,dubbo框架搭建得配置文件

    在建立了parent,common,manager(pojo,mapper,sercie,web)的maven工程后,开始导入添加配置文件: pojo,mapper 最终会打成jar包,service ...

  10. [development][semaphore] 信号量/信号灯/信号标/旗语

    前言: 接续前节 [development][C] 条件变量(condition variables)的应用场景是什么 之前讨论了条件变量的问题, 已经知道在逻辑上, 条件变量(管程)(moniter ...