Как предполагает Ганс Пассант, вы можете написать nmake/?
; это даст вам то, что вы уже знаете из своего вопроса, а именно 14.16.27026.1
.
Смысл переменной _NMAKE_VER
состоит в том, чтобы позволить вам протестировать версию nmake
или версию Visual Studio из в make-файла. Например, предположим, что ваш make-файл:
# Check the first three characters of _NMAKE_VER to
# obtain the Visual Studio version:
!if [cmd /c if "%_NMAKE_VER:~0,3%"=="14." exit 1]
! message Using VS 2017, with NMAKE $(_NMAKE_VER)
!elseif [cmd /c if "%_NMAKE_VER:~0,3%"=="12." exit 1]
! message Using VS 2013, with NMAKE $(_NMAKE_VER)
!else
! message Unknown VS version, with NMAKE $(_NMAKE_VER)
!endif
# Just output _NMAKE_VER:
all:
@echo "Version NMAKE" $(_NMAKE_VER)
Затем введите в командной строке разработчика Visual Studio 2017 следующую команду:
nmake /nologo
даст (на моей машине):
Using VS 2017, with NMAKE 14.10.25019.0
Version NMAKE 14.10.25019.0
или для Visual Studio 2013:
Using VS 2013, with NMAKE 12.00.21005.1
Version NMAKE 12.00.21005.1
Нам нужно использовать DOS cmd
для проверки _NMAKE_VER
, поскольку nmake
в отличие от gmake
имеет ограниченные инструменты для работы со строками.
Редактировать: Приведенный выше тест, вероятно, не сможет различить VS 15 и VS 17, поскольку номер версии VS 17 nmake
начинается с 14
, а не с ожидаемого 15
.