Як я можу підрядкувати команду git у пакетному файлі?


0

Я намагаюся додати гачок попередньої фіксації в TurtoiseGit, щоб автоматично додати номер JIRA до мого повідомлення. Номер JIRA завжди є першою частиною моєї філії.

Наприклад: JIRA-456-fix-cleanup-crash, Я хотів би мати JIRA-456

Команда git я використовую git rev-parse --abbrev-ref HEAD > %2. Але, на жаль, це дає мені повну назву. Мені тільки потрібно JIRA-456.

Я спробував використовувати команду оболонки findstr до успішної підстановки назви гілки.

Механізм, який я використовую, перерахований тут: https://gitlab.com/tortoisegit/tortoisegit/issues/2229#note_1781864


Так яке ваше питання і де ви застрягли?
gronostaj

@gronostaj Я додав уточнення. Я сподіваюся, що це пояснює мою проблему трохи краще. :)
Eldimo

1
Змініть ваше запитання - це не про git взагалі, але більше схожий " Як отримати JIRA-456 від JIRA-456-fix-cleanup-crash в пакетному файлі? "
Attie

@Attie Я вказав git, оскільки, можливо, є команда git, яка також може допомогти мені :)
Eldimo

Відповіді:


1

Замість перенаправлення виводу

git rev-parse --abbrev-ref HEAD

безпосередньо у файл > %2, розібрати його за допомогою a для / f

@Echo off
for /f "tokens=1-2 delims=-" %%A in ('
    git rev-parse --abbrev-ref HEAD
') Do Set "Var=%%A-%%B"
(Echo:%Var%)>%2

1

Це буде працювати, лише якщо структура рядка подібна до того, що ви сказали AAAA-BBBB-CCCC-....

for /F "tokens=1,2 delims=-" %%a in ("JIRA-456-fix-cleanup-crash") do (set "expectedString=%%a-%%b")
echo %expectedString%

Урожайність JIRA-456, вона працює шляхом розділення рядка за допомогою - як роздільник, тоді він приймає tokens 1 ( %%a ) і 2 ( %%b ) і об'єднати їх за допомогою set, так що ви можете використовувати рядок далі у вашому пакетному файлі.

Отже, для вас команда повинна передати команду FOR функціонувати у власному контексті, використовуючи одинарні лапки '

:: I Haven't used git so I'm not really sure about why you redirected the output stream
:: but this should give you a good idea how to use it

for /F "tokens=1,2 delims=-" %%a in ('git rev-parse --abbrev-ref HEAD') do (set "ExString=%%a-%%b")

The %%a Синтаксис для пакетних файлів, якщо ви хочете перевірити його як використання команди %a

Привітання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.