我做错了什么,但我不知道是什么。我有一个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
答案 0 :(得分:2)
如果nmake
是某个计划,请尝试nmake.exe
。 nmake.exe
需要在你的道路上才能发挥作用。如果不是,您可以(a)指定可执行文件的完整路径(b)或将可执行文件添加到路径中。您可以通过从Powershell或CMD提示符调用where.exe nmake
来查看可执行文件是否在您的路径中。
添加回答
这是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'
如果可以,并且您想通过程序名称调用它,请仔细检查您的路径。