是否从命令提示符获取Windows nmake版本?

是否从命令提示符获取Windows nmake版本?,windows,command-prompt,nmake,Windows,Command Prompt,Nmake,我真的不知道nmake,但我使用Windows 10下“x64原生工具VS 2017命令提示符”中的nmake;我想从命令提示符中找到这个工具的版本 我发现: 要检查NMAKE版本,请运行NMAKE版本1.62或更高版本可用的_NMAKE\u VER宏。这个宏返回一个表示VisualC++产品版本的字符串。 。。。但我真的不知道如何“运行宏”-我尝试了以下方法: C:\>nmake _NMAKE_VER Microsoft (R) Program Maintenance Utility

我真的不知道
nmake
,但我使用Windows 10下“x64原生工具VS 2017命令提示符”中的
nmake
;我想从命令提示符中找到这个工具的版本

我发现:

要检查NMAKE版本,请运行NMAKE版本1.62或更高版本可用的_NMAKE\u VER宏。这个宏返回一个表示VisualC++产品版本的字符串。 。。。但我真的不知道如何“运行宏”-我尝试了以下方法:

C:\>nmake _NMAKE_VER

Microsoft (R) Program Maintenance Utility Version 14.16.27026.1
Copyright (C) Microsoft Corporation.  All rights reserved.

NMAKE : fatal error U1073: don't know how to make '_NMAKE_VER'
Stop.
所以,它删除了版本字符串之类的内容,但仍然存在错误


<> P>这样,如何从命令行正确地获得<代码> nFux<代码>版本?

< P>如Hans Passant建议的,可以考虑键入<代码> NFIG//<代码>;这将提供您从问题中已经知道的内容,即
14.16.27026.1

变量
\u NMAKE\u VER
的作用是允许您从makefile中测试
NMAKE
版本或Visual Studio版本。例如,假设您的makefile是:

 # 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 Developer命令提示符发出以下命令:

 nmake /nologo
将给出(在我的机器上):

或者对于Visual Studio 2013:

 Using VS 2013, with NMAKE 12.00.21005.1
 Version             NMAKE 12.00.21005.1
我们需要使用DOS
cmd
来检查
\u NMAKE\u VER
,因为
NMAKE
gmake
不同,它的字符串操作工具有限


<强>编辑:< /强>上述测试可能无法区分VS 15和VS 17,因为VS 17代码> nFux<代码>版本号开始于<代码> 14 <代码>,而不是预期的<代码> 15 < /代码>。

< P>如Hans Passant建议的,您可以考虑键入<代码> NFIG//<代码> >这将提供您从问题中已经知道的内容,即
14.16.27026.1

变量
\u NMAKE\u VER
的作用是允许您从makefile中测试
NMAKE
版本或Visual Studio版本。例如,假设您的makefile是:

 # 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 Developer命令提示符发出以下命令:

 nmake /nologo
将给出(在我的机器上):

或者对于Visual Studio 2013:

 Using VS 2013, with NMAKE 12.00.21005.1
 Version             NMAKE 12.00.21005.1
我们需要使用DOS
cmd
来检查
\u NMAKE\u VER
,因为
NMAKE
gmake
不同,它的字符串操作工具有限


编辑:上述测试可能无法区分VS 15和VS 17,因为VS 17
nmake
版本号以
14
开始,而不是预期的
15

宏用于生成文件。考虑键入<代码> NFIG//<代码>,它显示版本号和命令选项。谢谢@ @ ShansAsAt-免费发布这个作为答案,我会接受它!很难写出一个像样的答案,我只是不知道为什么这对你很重要。只需分享您在自己的帖子中学到的知识,并将其标记为答案。我对您的
nmake
问题的回答给出了一个合理的例子,说明如何使用内置宏
\nmake\r
。宏用于生成文件。考虑键入<代码> NFIG//<代码>,它显示版本号和命令选项。谢谢@ @ ShansAsAt-免费发布这个作为答案,我会接受它!很难写出一个像样的答案,我只是不知道为什么这对你很重要。只需分享您在自己的帖子中学到的内容,并将其标记为答案。我对您的
nmake
问题的回答给出了一个合理的例子,说明如何使用内置宏
\u nmake\u VER
。编辑:要区分VS 15和VS 17,您必须更仔细地检查subversion编号,由于VS 17
nmake
主要版本号是
14
,而不是预期的
15
。编辑:要区分VS 15和VS 17,您必须更仔细地检查subversion编号,因为VS 17
nmake
主要版本号是
14
,而不是预期的
15