Вы можете сделать что-то подобное из cmdline:
for /f "skip=1 tokens=1,* delims=;" %i in ('"%VSINSTALLDIR%Common7\IDE\TF.exe" localversions %ProjectName%') do echo %j
, если вы хотите создать пакетный файл, тогда:
@echo off
for /f "skip=1 tokens=1,* delims=;" %%i in ('"%VSINSTALLDIR%Common7\IDE\TF.exe" localversions %ProjectName%') do echo %%j
Чтобы установить его как постоянную переменную среды,Вы можете посмотреть на setx
, но будьте осторожны, чтобы не использовать существующую переменную среды системы или пользователя.Это должно быть что-то вроде:
@echo off
for /f "skip=1 tokens=1,* delims=;" %%i in ('"%VSINSTALLDIR%Common7\IDE\TF.exe" localversions %ProjectName%') do setx SOMEVAR %%j
Наконец, если это не делает то, что ожидается, мы пропускаем 1, затем выходим из цикла, как только мы получим второй ряд (который технически теперь 1-й):
@echo off
for /f "skip=1 tokens=1,* delims=;" %%i in ('"%VSINSTALLDIR%Common7\IDE\TF.exe" localversions %ProjectName%') do setx SOMEVAR %%j & goto :EOF
В итоге:
- Вывод команды может быть зациклен без сохранения во временный файл.
После получится точная строкав переменную.
for /f "tokens=1* delims=:" %%G in ('"%VSINSTALLDIR%Common7\IDE\TF.exe" localversions %ProjectName%') do if %%G equ 3 set Line=%%H
SET Version=%Line:~11,5%
ECHO %Version%
Этот код прочитает 3-ю строку и установит в нее переменную строки, с которой я проанализировал номер версии.Над строками отобразится номер версии получения из TFS.