git - Git 描述 FOR /F 命令中的条件性致命错误
问题描述
这是一个奇怪的问题。下面的代码在批处理文件中按预期工作:
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
命令的环境有关?
解决方案
感谢 elzooilogico。
如此处详述,=
需要像^=
在FOR /F
命令主题中使用时一样进行转义。
如果没有转义,我认为 8 被视为提交字符串。
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=%%I00
set dirty_broken=%%J
)
按预期工作。
推荐阅读
- javascript - 如何从文本呈现 react-router Link 组件?
- excel - Excel VBA - 用联合擦除行?
- javascript - 如何通过 webpack 和 file-loader 在两个捆绑 (scss) 文件中使用一个图像?最后一个返回 undefined
- parallel-processing - 为什么当 map(fib,array) 类型稳定时 pmap(fib,array) 会导致类型不稳定?
- firefox - 使用 Firefox 编写网站交互脚本
- python - 如何使用 Python 创建一个函数,该函数将在字典中为数据表中的每一行返回一个值?
- ruby-on-rails - Rails:在不同的控制器中调用模型中的方法
- .net - 尽管使用了 Overridable/Overrides,但实现 ToString 并不会覆盖原始 ToString 方法。我想念什么?
- javascript - 如何向 Vue 导入其组件块的路径添加前缀?
- javascript - UI 焦点错误,选项卡后焦点跳回上次编辑的文本框