Я пытаюсь получить номер версии проекта и сохранить его в переменной. Я знаю, что могу получить номер версии с помощью команды svnversion, но не знаю, как его сохранить. Я использую обычную командную строку Windows. В основном я пытаюсь сделать что-то вроде: set svnVersion= %svnversion%, но я не знаю, как это сделать??
Могу ли я установить переменную среды с номером версии SVN проекта?
Ответы (7)
Чтобы установить вывод переменной в вывод svnversion в пакетном файле, вы должны сделать следующее:
for /f "delims=" %%a in ('svnversion') do @set myvar=%%a
echo %myvar%
Другой подход: если у вас есть TortoiseSVN, вы также можете использовать SubWCRev.exe. См. получить номер версии проекта в мой проект? или Автоматическая нумерация версий SVN в ASP.Net MVC
Если вам это нужно из удаленного репозитория (например, не проверено локально), вы можете сделать это
for /f "delims=: tokens=1,2" %%a in ('svn info %SVN_REPO_URL%') do (
if "%%a"=="Revision" (
set /a RELEASE_REVISION=%%b
)
)
Я использую это в своем процессе выпуска, чтобы получить номер версии из тега.
В bash (через Cygwin):
svn info | grep -i "Revision" | cut -d ' ' -f 2
Затем вы можете использовать это в сценарии оболочки bash для сохранения значения в переменной.
Подкоманда "svn info" сообщит вам номер ревизии в вашей рабочей копии.
Что-то типа:
svn version > ver.txt
set /p ver= < ver.txt
del ver.txt
echo %ver%
Вот альтернатива, которая использует конвейер для findstr для получения одной строки:
FOR /F "tokens=2" %%G IN ('svn info ^| findstr /B Revision:') DO SET SVN_REVISION=%%G
echo SVN_REVISION: %SVN_REVISION%
FOR /F "tokens=2" %%G IN ('svn info ^| findstr /B URL:') DO SET SVN_URL=%%G
echo SVN_URL: %SVN_URL%