2016-09-07 7 views
0

Я хочу напечатать версию, например. Упаковщик в cmd. Это работает с packer --version. К сожалению, это печатает только номер версии, но не имя инструмента. Это относится и к некоторым другим инструментам (например, VirtualBox и т. Д.).Как напечатать имя и версию инструмента в cmd в одной строке?

C:\_TEMP λ packer --version 0.10.1 λ vboxmanage --version 5.1.4r110228

Так что моя идея состояла в том, чтобы сделать somethink как echo Packer & packer --version, но это печатает в две строки:

C:\_TEMP λ echo Packer & packer --version Packer 0.10.1

Теперь, как я могу напечатать имя + номер версии в одной строке? Так что результат выглядит следующим образом:

Packer 0.10.1 Virtualbox 5.1.4r110228

ответ

0

Присвоить результат версии переменной среды

for /f %a in ('packer --version') do set VERSION=%a 

затем повторить то, что вам нравится

echo packer %VERSION% 

Объяснение:

  • Вы зацикливаете на выходе packer --version (есть только 1 строка, хотя VERSION получает только одну)
  • Если вам нужен только один токен из строки, вы можете указать, например, «tokens = 2» для второго пробела маркер.

ПРИМЕЧАНИЕ: Эти команды работают из командной строки. Для использования в пакетном файле превратите% a в %% a.

+0

Черт, это так много работы для такой маленькой вещи, чтобы достичь :))), но я не думаю, нет более простой способ (?). Спасибо за дополнительное объяснение и ЗАМЕЧАНИЕ, это очень хорошо - я уверен, что столкнулся бы с этим. –

0

вы можете также (аb) использовать set /p для этого (смотри, например, here):

<nul set /p "=Packer: " 
packer --version 
<nul set /p "=VirtualBox: " 
vboxmanage --version