批量变量减法

时间:2017-08-11 11:41:53

标签: batch-file

我似乎无法在我的批处理脚本中获取变量以正确减去。我有以下内容:

set /P head=<..\BUILD_NUMBER.dat

echo %head% > ..\HEAD.dat

set desired=%5

echo %desired% > ..\test.dat

set /a "version=%desired%-%head%"

echo %version% > ..\version.dat

git checkout @{%version%}
echo %desired% > ..\BUILD_NUMBER.dat 
echo %desired% > ..\build\BUILD_NUMBER.dat 

.. \ HEAD.dat的内容是正确的,但是没有别的。

  • .. \ test.dat从未创建过(我不太关心,因为它只是一个测试)。
  • .. \ BUILD_NUMBER.dat和.. \ build \ BUILD_NUMBER.dat具有回声之前的值
  • .. \ version.dat包含%desired%包含的内容。
  • git repo的签出版本是当前的HEAD,而不是所需的版本

基本上,我尝试做的是从git中检出特定的修订号,使用rev-list --count来获取HEAD值,然后从所需版本中减去该值以获得负偏移量。 git checkout命令。

1 个答案:

答案 0 :(得分:0)

说到git命令,你可以用bash编写你的脚本,然后用任何CMD Windows运行它,bash -c ./yourScript.sh

确保以unix模式编写shell脚本(lf中的行尾,而不是crlf)。

你会发现你在bat脚本中尝试的间接查找在bash脚本中要容易得多:

#!/bin/bash

head=$(cat ../BUILD_NUMBER.dat)
...