这是一个奇怪的问题。下面的代码在批处理文件中按预期工作:
FOR /F "tokens=1,2,3,* delims=-" %%G IN (
'git describe --long --always --dirty --broken'
) do (
set tag_name=%%G
set versions_from_tag=%%H
set hash=%%I
set dirty_broken=%%J
)
当我尝试添加 --abbrev 选项时,出现致命错误:
FOR /F "tokens=1,2,3,* delims=-" %%G IN (
'git describe --long --always --dirty --broken --abbrev=8'
) do (
set tag_name=%%G
set versions_from_tag=%%H
set hash=%%I
set dirty_broken=%%J
)
输出:fatal: --dirty is incompatible with commit-ishes
但是如果我在 FOR /F 之外运行命令,它会按预期工作:
git describe --long --always --dirty --broken --abbrev=8
输出2.11-13-ga03306e6-dirty
我假设这可能与FOR /F
命令的环境有关?