Цель: получить вывод git describe --tag=Foo --abbrev=0
в переменную среды Windows.
Моя попытка:
C:\Projects\Foo> FOR /F "tokens=* USEBACKQ" %F IN \
(`git describe HEAD --match "Foo*" --abbrev=0 --debug`) DO SET Var=%F
Результат:
описать HEAD Нетточное совпадение по ссылкам или тегам, поиск по описанию
завершен поиск по адресу d501f4f270405435692e5eb369fafbb53f0c74a2 с комментариями 463 Foo0.0-beta пройдено 562 коммитов
описать 0 фатально: недопустимое имя объекта 0
Это странная фатальная ошибка.Без FOR
, Git работает:
git describe HEAD --match "Foo*" --abbrev=0 --debug
Нет точного соответствия по ссылкам или тегам, поиск по описанию
Закончен поиск по d501f4f270405435692e5eb369fafbb53f0c74a2 с комментариями 463Foo0.0-beta прошел 562 коммитов
Foo0.0-beta
Теперь describe 0 fatal
можно проследить до аргумента --abbrev=0
, но это существенный аргумент.Кажется, что FOR
разбил аргумент --abbrev=0
на две части, что привело к тому, что Git трактовал 0
как значение хеша и пытался найти тег для описания этого хеша.
Ссылки: Получение вывода команды в переменную , Получение имени тега с помощью git description