“nmake”一词未被识别

时间:2018-04-24 13:56:30

标签: powershell visual-studio-2017 nmake

我做错了什么,但我不知道是什么。我有一个PowerShell脚本,我有一个像这样的变量:

$VCVARSALLBAT = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat"

现在,在此脚本中,我想将此vcvarsall.bat称为:

& "$($VCVARSALLBAT)" x86_amd64

从我看到的输出,它跑了。致电vcvarsall.bat后,我致电nmake

即。我的脚本看起来像这样:

$VCVARSALLBAT = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat"
& "$($VCVARSALLBAT)" x86_amd64
nmake

我收到此错误消息:

nmake : The term 'nmake' is not recognized as the name of a cmdlet, function,
script file, or operable program. Check the spelling of the name, or if a path
was included, verify that the path is correct and try again.
At ...:214 char:1
+ nmake
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (nmake:String) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : CommandNotFoundException

奇怪的是:当我进入Windows的正常命令行并调用以下语句时,我可以毫无错误地调用nmake

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
nmake

1 个答案:

答案 0 :(得分:2)

如果nmake是某个计划,请尝试nmake.exenmake.exe需要在你的道路上才能发挥作用。如果不是,您可以(a)指定可执行文件的完整路径(b)或将可执行文件添加到路径中。您可以通过从Powershell或CMD提示符调用where.exe nmake来查看可执行文件是否在您的路径中。

添加回答

这是where.exe做的......

enter image description here

如果你在CMD中找到了一些东西而不是Powershell,我会验证你的路径是否匹配:

enter image description here

如果给定的程序在您的路径中,where.exe即使在Powershell中也会找到它。

enter image description here

在原帖中,你得到了标准,“我找不到你的命令。” Powershell的例外:

enter image description here

如果你真的想测试是否可以从Powershell调用exe,请明确地调用它:

'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\bin\Hostx86\x86\nmake.exe'

如果可以,并且您想通过程序名称调用它,请仔细检查您的路径。