我是新的批处理脚本。这可能是一个愚蠢的问题。 有人可以帮我执行以下命令吗?
当我运行以下命令时。它工作正常。
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.
请帮助
答案 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 variable和Escaping parentheses within parentheses for batch file