首页 > 解决方案 > 无法识别“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 :术语“nmake”不被识别为 cmdlet、函数的名称,
脚本文件或可运行的程序。检查名称的拼写,或者如果路径
已包含,请验证路径是否正确,然后重试。
在 ...:214 字符: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

标签: powershellvisual-studio-2017nmake

解决方案


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

添加到答案

这是什么where.exe...

在此处输入图像描述

如果您在 CMD 而不是 Powershell 中找到某些内容,我会验证您的路径是否匹配:

在此处输入图像描述

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

在此处输入图像描述

对于原始帖子,您得到的标准是“我找不到您的命令”。Powershell 的例外情况:

在此处输入图像描述

如果您真的想测试是否可以从 Powershell 调用 exe,请显式调用它:

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

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


推荐阅读