如何在批处理文件中将命令git输出设置为变量

时间:2019-01-30 14:06:25

标签: windows batch-file

我是新的批处理脚本。这可能是一个愚蠢的问题。 有人可以帮我执行以下命令吗?

当我运行以下命令时。它工作正常。

 c:\test>git for-each-ref refs/tags --sort=-taggerdate --format=%(refname)

 Output is : refs/tags/SAMPLE

现在我想将此输出分配给变量

尝试将值分配给TAG变量,但出现错误。

 C:\test>for /f %i in ('git for-each-ref refs/tags --sort=-taggerdate --format=%(refname)' ) do set TAG=%i
 ' was unexpected at this time.

请帮助

1 个答案:

答案 0 :(得分:0)

--format=%(refname)中的括号引起外部括号的问题,因此您需要使用^字符对它们进行转义。

 for /f %i in ('git for-each-ref refs/tags --sort=-taggerdate --format=%^(refname^)' ) do set TAG=%i

注意1:帮个忙,在Windows上使用git-bash或powershell编写git脚本。

注2:有很多特殊情况和区别,具体取决于您是从.bat fil运行批处理命令还是在控制台中键入批处理命令,另请参见Assign output of a program to a variableEscaping parentheses within parentheses for batch file