powershell - 无法识别“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
解决方案
如果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'
如果可行并且您想通过程序名称调用它,请仔细检查您的路径。
推荐阅读
- c++ - 为什么我在这里得到 Sigabrt
- r - 如何设置适当的当前人口调查调查重复权重设计?
- javascript - Firebase 身份验证和 Google 登录
- python - 如何创建计算后返回值的 WTF 表单和烧瓶?
- r - 将 SQL 代码块包含到 R 脚本中以转换为 Markdown 报告
- asp.net - 将事件侦听器附加到 Microsoft.IdentityModel.Logging
- r - 使用连接的粘贴向量重新分配列名
- python - 您如何为文本文件编号,但在再次计数之前还要重复每个数字 x 次?
- c# - Telerik 下拉控件不允许我从下拉列表中选择项目
- azure - 使用 Azure Powershell cmdlet New-AzVM 创建 Windows 10 VM