是否从命令提示符获取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
我们需要使用DOScmd
来检查\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
我们需要使用DOScmd
来检查\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 17nmake
主要版本号是14
,而不是预期的15
。编辑:要区分VS 15和VS 17,您必须更仔细地检查subversion编号,因为VS 17nmake
主要版本号是14
,而不是预期的15
。